我正在将 Backbone.View 移植到 React 中。我可能遗漏了一些东西,但我无法找出使组件状态依赖于其兄弟状态的惯用方法。例如,假设我有一个这样的组件:
<Timeline>
<Page selected="true" onClick={this.handleClick} />
<Page selected="false" onClick={this.handleClick}/>
</Timeline>
假设所有的 handleClick 都是为了setState({selected: true})
. 我的问题是如何确保该组件的兄弟姐妹的状态在设置为 true 之前设置为 false。
我理想的解决方案是监听道具状态的变化并从 Timeline 组件中强制渲染子组件,但我不知道这是否是一种可接受的方法。
我也在寻找实现此组件的替代方法,因为我了解分解组件的推荐方法是使它们尽可能无状态,以确保它们可以在其他地方重用。