Не удается получить доступ к дочернему элементу React State

#javascript #reactjs

#javascript #reactjs

Вопрос:

Я получаю

Неперехваченная ошибка типа: не удается прочитать свойство ‘id’ неопределенного
console.log(this.state.kirja.tyyppi.id );

Я хочу получить доступ tyyppi.id элемент https://i.imgur.com/KdUtMeJ.png

Это мой json https://imgur.com/a/mZsjuSp

 class Child extends React.Component{

    state = {
        kirja: []
    }

    componentDidMount() {
        axios.get("http://example.com/api/kirja/" this.props.match.params.id)
            .then(res => {
                const kirja = res.data;
                console.log(kirja)
                this.setState({ kirja });
            })
    }


    render() {
        const { classes } = this.props;
        console.log(this.state.kirja.tyyppi.id);
    return ()
    }
}


  

Комментарии:

1. Если у вас есть друзья-разработчики, поделитесь с ними этим вопросом и посмотрите, смогут ли они что-нибудь понять, вам нужно предоставить больше кода🙂

2. находится ли ваш json в состоянии?

3. Да, это так, this.state.kirja.tyyppi возвращает это i.imgur.com/oqGnL49.png

Ответ №1:

ваше начальное состояние для kirja — пустой массив.

Вот почему вы не можете получить доступ this.state.kirja.tyyppi.id в render()

  render() {

   if(this.state.kirja amp;amp; this.state.kirja.tyyppi) {
      console.log(this.state.kirja.tyyppi.id);
    }
}
  

Комментарии:

1. Большое спасибо!! ты сделал мой день! потратил так много времени, чтобы попытаться исправить это, прежде чем спрашивать!

Ответ №2:

В вашем state.kirja.tyyppi у вас нет идентификатора.

Вы не сохранили kirja в своем состоянии.

Комментарии:

1. Да, я сохранил его, я просто не включил этот код в op. исправлено сейчас

2. все в порядке, это то, что я получаю, когда я регистрирую все состояние в консоли imgur.com/a/mZsjuSp