Я в настоящее время делаю один небольшой проект в React + Flux (RefluxJS), и я столкнулся с остроумием один вопрос, который я не могу решить. Я был бы очень благодарен, если бы кто-то из вас мог дать мне руку.Как установитьState для одного экземпляра компонента в RefluxJS?
Здесь у вас есть the link to GitHub со всем проектом, чтобы облегчить вам помощь, это простейшая версия, чтобы воспроизвести проблему, с которой я столкнулся.
Мое сомнение в том, как я могу использовать один компонент в одном представлении с различным контентом. Поясню:
я на компоненте в, «компоненты/threads.jsx», которые в итоге сделать этот мир кода получать данные из хранилища («магазины/токарно-store.jsx») поддельный через в API ("Utils/api.jsx"):
renderThreads: function() {
return this.state.thread_content.map(function(thread, i) {
return (
<div key={thread.id}>
<div className="row">
<div className="col-md-10">
<a data-toggle="collapse" href={'#thread-' + thread.id} className="faq-question">{thread.name}</a>: <small>{thread.content}</small>
</div>
</div>
<div className="row">
<div className="col-lg-12">
<div id={'thread-' + thread.id} className="panel-collapse collapse ">
<Posts id={thread.id} />
</div>
</div>
</div>
</div>
);
});
},
Как лет можно видеть, я еще один компонент, вложенных под названием "сообщения" в "компоненты/токарно-posts.jsx" который отображается для каждого потока. В компоненте «Сообщения» у меня есть этот код:
module.exports = React.createClass({
mixins: [
Reflux.listenTo(PostsStore, 'onChange'),
],
getInitialState: function() {
return {
posts: []
}
},
componentDidMount: function() {
Actions.getPosts(this.props.id);
},
render: function() {
return (
<div>
{this.renderPosts()}
</div>
);
},
renderPosts: function() {
if(this.state.posts.comments != undefined){
return this.state.posts.comments.map(function(post, i) {
return(
<div key={i} className="faq-answer">
<p>
{post.content}
</p>
</div>
);
});
}
},
onChange: function(event, posts) {
this.setState({
posts: posts,
});
}
В этом проблема. Когда закончите рендеринг, все потоки имеют одинаковые записи, в частности, последние были установлены. Я думаю, что это связано с состояниями, если они меняются, это будет изменение во всех компонентах.
Итак, мой вопрос в том, как я могу с ним справиться, чтобы иметь сообщения в соответствии с его потоком, но используя тот же компонент? Если это невозможно, это лучшее решение для этого?
Я надеюсь, что объясняю себя и достаточно, чтобы понять меня.
Буду очень признателен, если вы можете дать мне руку в этом выпуске.
Заранее спасибо.
Большое спасибо! – Yonirt