Задать вопрос
@IIITRIX

Как исправить Cannot read property 'params' of undefined?

componentDidMount() {
  const postID = this.props.match.params.postID
    axios.get(`http://127.0.0.1:8000/api/${postID}`)
    .then(res => {
      this.setState({
        post: res.data
      });
    })
  }
  • Вопрос задан
  • 2521 просмотр
Подписаться 1 Простой 1 комментарий
Помогут разобраться в теме Все курсы
  • Нетология
    Frontend-разработка на React
    10 недель
    Далее
  • Яндекс Практикум
    React-разработчик
    3 месяца
    Далее
  • Skypro
    React-разработчик с нуля
    9 месяцев
    Далее
Решения вопроса 1
maxfarseer
@maxfarseer
https://maxpfrontend.ru, обучаю реакту и компании
Нужно разобраться в причине появления этой ошибки.
Суть ее в том, что у вас this.props.match - undefined, а это значит (скорее всего, так как кода не вижу) - вы рендерите компонент не из <Router /> компонента (или не из обертки withRouter).

Если с причиной разбираться нет желания, и хочется просто сделать "заплатку", то можно сделать так:
componentDidMount() {
  if (this.props.match && this.props.match.params.postID) {
    const postID = this.props.match.params.postID
      axios.get(`http://127.0.0.1:8000/api/${postID}`)
      .then(res => {
        this.setState({
          post: res.data
        });
      })
    }
// если надо можете сделать else
  }
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы