在SocketIO的帮助下,我为实时更新创建了一个小的ReactJS仪表盘.尽管我更新了仪表板,但我不太确定是否正确,这让我很恼火.
最让我困扰的是Props in getInitialState as anti-pattern篇帖子.我创建了一个仪表板,可以从服务器获取实时更新,除了加载页面之外,无需用户交互.从我读到的内容来看,this.state
应该包含决定组件是否应该重新渲染的内容,this.props
....我还不知道.
但是,当您最初呼叫React.render(<MyComponent />, ...)
时,您只能传递props .在我的例子中,我从服务器获取所有数据,所以最初的props 最终只会出现在this.state
中.所以我所有的组件都是这样的:
getInitialState: function() {
return {
progress: this.props.progress,
latest_update: this.props.latest_update,
nearest_center: this.props.nearest_center
}
}
除非我误解了前面提到的博文,否则这是一种反模式.但我看不到其他将状态注入组件的方法,我不明白为什么这是一种反模式,除非我重新标记所有props ,在它们上预先添加initial
.如果有什么区别的话,我觉得that's是一种反模式,因为现在我必须比以前跟踪更多的变量(那些预先设置了initial
,而那些没有).