здесь нужна помощь.
Я реализую функцию вложенных комментариев, например, reddit. В основном мои данные в «состоянии» выглядят так:
post: {
id: 'foo'
comments: [
{ id: '1', comments: [] },
{ id: '2', comments: [ { id: '3', comments: [...]}, ... ]}
]
}
Мой код для отображения данных:
<Row>
<Col md={12}>
{post.comments.map((comment, index) => {
return <Comment
key={comment.id}
comment={comment} />
})}
</Col>
</Row>
Comment.js:
render() {
const comment = this.props.comment;
return (
<div>
<Panel className="comment">
<Panel.Heading className="commentHeader">
<div>{comment.id}</div>
</Panel.Heading>
<Panel.Body>
<Row>
<h3>{comment.content}</h3>
{comment.comments &&
comment.comments.map((comment, index) => {
return <Comment key={comment.id}
comment={comment} />;
})}
</Row>
<Row>
<Button onClick={this.handleReply}> Reply </Button>
</Row>
</Panel.Body>
</Panel>
</div>
);
}
Моя проблема в том, что когда я добавляю внешний комментарий в посте, отреагирует нормально:
post: {
id: 'foo'
comments: [
{ id: '1', comments: [] },
{ id: '2', comments: [ { id: '3', comments: [...]}, ... ]},
{ id: 're-render works! see another comment', comments: []},
]
}
Однако, если новое 'состояние' будет выглядеть примерно так, оно не будет перерисовываться, но если я перезагрузлю страницу, все будет хорошо:
post: {
id: 'foo',
comments: [
{ id: '1', comments: [{id: 'not working unless reload page',
comments: []}]},
{ id: '2', comments: [ { id: '3', comments: [...]}, ... ]},
{ id: 're-render works! see another comment', comments: []},
]
}
Спасибо за помощь !!!