TypeError: Невозможно прочитать свойство "content" из неопределенного - PullRequest
0 голосов
/ 12 февраля 2019

React app route возвращает ошибку при перезагрузке страницы в браузере.

На моей целевой странице есть раздел блога с кнопками, которые ссылаются на страницу с полным списком статей блога и другим набором страниц.та ссылка на полные статьи для каждой записи в блоге.Я добавляю записи блога из WordPress через его API и использую Context для управления состоянием и обмена данными с моими компонентами.Я использую React Router для перехода от целевой страницы к списку статей и каждой полной статье.Структура маршрута с целевой страницы: "/articles/:postId".

Мне удалось отобразить отдельные полные статьи при нажатии кнопки" читать дальше ".Однако, когда я перезагружаю браузер на странице с полной статьей, я получаю сообщение об ошибке, которое совпадает с названием моего поста.Глядя на консоль, я вижу следующие ошибки:

"Uncaught TypeError: Невозможно прочитать свойство 'content' из неопределенного"

"index.js: 1446 В компоненте произошла вышеуказанная ошибка:в статье (созданной Route) в Route (в App.js: 19) в Switch (в App.js: 16) в Provider (в App.js: 15) в Router (создан BrowserRouter) в BrowserRouter (в App.js: 14) в приложении (на src "

Я ничего не пытался исправить, так как не уверен, что является источником этой конкретной ошибки. Я даже не могу вернуться назад в своем браузеречтобы очистить его. Мне нужно вернуться на свою целевую страницу и перезагрузить браузер, чтобы устранить проблему.

Context.js:

const Context = React.createContext();

export class Provider extends Component{
    constructor(){
        super();
        this.state={
            content: ''
        }
    }

    componentDidMount(){
        fetch('url')
        .then(res => res.json())
        .then(data => this.setState({
            content: data
        }));
    }

    render(){
        return(
            <Context.Provider value={this.state}>
                {this.props.children}
            </Context.Provider>
        )
    }
}

export const Consumer = Context.Consumer;

Настройка маршрута:

 return (
    <Router>
      <Provider>
        <Switch>
          <Route path="/" exact component={Home}/>
          <Route path="/articleList/" exact component={ArticleList}/>
          <Route path={`/articleList/:articleId`} component={Article}/>
        </Switch>
      </Provider>
    </Router>
);

Код компонента статьи:

const Article = ({match}) => {
return(
  <Consumer>
    {value => {
      const [...articles] = value.content;

      const res = articles.find(article=> article.id === parseInt(match.params.articleId))

      return(
          <ArticleBody content={res.content.rendered}/>
      )

    }}
  </Consumer>
)
}

Я надеюсь, что смогу перезагрузить страницы, не увидев этих ошибок.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...