@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
      });
    })
  }
  • Вопрос задан
  • 2424 просмотра
Решения вопроса 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
  }
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
29 мар. 2024, в 10:00
10000 руб./за проект
29 мар. 2024, в 09:59
750 руб./в час
29 мар. 2024, в 09:55
50000 руб./за проект