我有一個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
,然後將子狀態作爲道具移動到父項中,然後改變狀態並將其作爲道具緩衝下來。
哪種方法(如果有的話)是慣用的還是可取的?