Во-первых, данные, которые вы определяете в state
и цикл в render
, выглядят не очень хорошо для меня. Я имею в виду, вы определяете selecTodo
как массив в constructor
и пытаетесь получить как selectTodo.comments
в методе render
. Итак, измените состояние на
this.state = {
resul: []
selectTodo:{comments: []}
};
И измените способ назначения данных в componentDidMount
как
componentDidMount() {
axios.get(" http://....../todos")
.then(response => {
this.setState({
resul: response.data,
selectTodo: { comments: this.props.selected.comments }
});
})
.catch(error => {
console.log('Error fetching and parsing data', Error);
}
);
}
и выполните следующие действия в render
render () {
if(!this.state.selectedTodo.comments.length) {
return null;
}
return (
<div>
{
{
this.state.selectTodo.comments.map((obj, i) => {
return <li>{obj["comment"]}</li>
})
}
}
</div>
);
}