@sema-fedotov

Как подождать props?

Есть код вида:
componentDidMount() {
		fetch(`${url}/user_info?user_id=${this.props.fetchedUser.id}`)
			.then(res => { this.user = res.json() })
			.then(
				(result) => {
					this.setState({
						loaded: true,
					});
				},
				(error) => {
					this.setState({
						loaded: true,
						error
					});
				}
			)
	}

Но он не может выполнится из-за ошибки cannot read property 'id' of null
Как мне можно подождать props, чтобы он подставился в ajax запрос?
  • Вопрос задан
  • 104 просмотра
Пригласить эксперта
Ответы на вопрос 2
RomReed
@RomReed
JavaScript, React js, ReactNative, Redux, Firebase
или заставить монтироваться компонент уже с готовым id или же ловить его в componentWillReceiveProps
componentWillReceiveProps(nextProps) {
if(nextProps.fetchedUser.id&&this.props.fetchedUser.id!==nextProps.fetchedUser.id){
fetch(`${url}/user_info?user_id=${this.props.fetchedUser.id}`)
      .then(res => { this.user = res.json() })
      .then(
        (result) => {
          this.setState({
            loaded: true,
          });
        },
        (error) => {
          this.setState({
            loaded: true,
            error
          });
        }
      )
  }
}
Ответ написан
profesor08
@profesor08
Ты не передал своему компоненту параметры через пропсы. Передай и все заработает. Используй typescript чтоб не вылезало непонятных вещей.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы