最佳答案
我在 SocketIO 的帮助下创建了一个小的 ReactJS 仪表板,用于实时更新。尽管我已经更新了仪表板,但我还是不确定我是否做对了。
最让我烦恼的是 在 getInitialState 中支持反模式的帖子。我已经创建了一个指示板,它可以从服务器获取实时更新,除了加载页面之外不需要用户交互。从我读到的内容来看,this.state
应该包含一些内容,这些内容将决定是否应该重新呈现组件,而 this.props
... ..。我还不知道。
但是,当您最初调用 React.render(<MyComponent />, ...)
时,只能传递道具。在我的例子中,我从服务器获取所有数据,所以最初的道具最终还是会出现在 this.state
中。所以我所有的组件都有这样的东西:
getInitialState: function() {
return {
progress: this.props.progress,
latest_update: this.props.latest_update,
nearest_center: this.props.nearest_center
}
}
除非我误解了前面提到的博客文章,否则这是一种反模式。但是我没有看到其他将状态注入组件的方法,而且我不明白为什么它是一个反模式,除非我重新标记我所有的道具,以便在它们上面预置 initial
。如果说有什么不同的话,那就是我觉得 那是是一个反模式,因为现在我必须跟踪比以前更多的变量(那些预先使用 initial
的变量和那些没有使用 initial
的变量)。