我已经在SocketIO的帮助下创建了一个小的ReactJS仪表板,用于实时更新。即使我更新了仪表板,也使我感到不确定我是否正确执行了操作。
最让我感到困扰的是getInitialState中的Props作为反模式发布。我创建了一个仪表板,该仪表板从服务器获取实时更新,除了加载页面外,不需要用户交互。根据我的阅读,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
}
}
除非我对上述博客文章有误解,否则这是反模式。但是我看不到将状态注入Component的其他方法,而且我不明白为什么它是一种反模式,除非我重新标记所有道具以使其成为前提initial
。如果有的话,我觉得那是一种反模式,因为现在我必须跟踪比以前更多的变量(带initial
和不带)。