我有一个全局的data
对象,我在更新它后再次调用顶级/主要组件上的React.renderComponent()
。
这是触发此更新的正确模式吗?
我有一个全局的data
对象,我在更新它后再次调用顶级/主要组件上的React.renderComponent()
。
这是触发此更新的正确模式吗?
React.renderComponent
将要么首次 挂载 组件,要么获取已经挂载的组件进行 更新。Flux
架构:
http://facebook.github.io/flux/docs/overview.html
我曾经遇到同样的问题,然后问自己是否真的需要重新渲染组件。
你可以使用this.forceUpdate()
来实现,但这并不是一个好的选择。正如React文档所述:
应该尽量避免使用forceUpdate(),只在render()中读取this.props和this.state。这使得你的组件“纯净”,让你的应用程序更简单、更高效。
所以我创建了一个像exists
这样的data
属性,并对其进行了测试:
// renderDeleteButton() is being called on render()
renderDeleteButton () {
if (!this.props.store.exists) {
return;
}
return(
<DeleteButton
...
deleteAction={this.delete} />
);
}
exists
,组件会根据其显示或隐藏。React为我处理这个过程。