我有一个listview组件,它由一些子listitem组件组成。一次更新多个组件的状态
每个孩子的listitem都有一个showSubMenu
布尔状态,它在列表项旁边显示一些额外的按钮。
此状态应更新以响应用户事件,例如单击组件DOM节点。
childcomponent:
_handleClick() {
... mutate state
this.props.onClick() // call the onClick handler provided by the parent to update the state in parent
}
但是,这感觉有点不对更新状态等,它在不同的地方发生变异状态。
另一种我认为可以完成的方式是直接调用this.props.onClick
,然后将子状态作为道具移动到父项中,然后改变状态并将其作为道具缓冲下来。
哪种方法(如果有的话)是惯用的还是可取的?