我在 SocketIO 的帮助下创建了一个小型 ReactJS 仪表板以进行实时更新。即使我更新了仪表板,我也不太确定我是否正确地进行了更新。
最让我烦恼的是getInitialState 中的props作为反模式帖子。我创建了一个仪表板,可以从服务器获取实时更新,除了加载页面之外不需要用户交互。从我读过的内容来看,this.state
应该包含决定组件是否应该重新渲染的内容,并且this.props
......我还不知道。
但是,当您最初调用 时React.render(<MyComponent />, ...)
,您只能传递props。就我而言,我从服务器获取所有数据,因此初始propsthis.state
无论如何都会结束。所以我所有的组件都有这样的东西:
getInitialState: function() {
return {
progress: this.props.progress,
latest_update: this.props.latest_update,
nearest_center: this.props.nearest_center
}
}
除非我误解了上述博客文章,否则这是一种反模式。但是我看不出有其他方法可以将状态注入到组件中,而且我不明白为什么这是一种反模式,除非我重新标记所有props以预先添加initial
它们。如果有的话,我觉得这是一种反模式,因为现在我必须跟踪比以前更多的变量(前面有initial
和没有的变量)。