Я пытаюсь элегантно реорганизовать компонент, чтобы мы могли легко использовать его для тех же целей.
У меня есть два компонента,
- NewPurchaseOrder (родительский комп.)
- SelectWarehouse (дочерний комп.)
Компонент SelectWarehouse отобразит раскрывающийся список доступных складов в компоненте NewPurchaseOrder.
У родительского компонента есть одно состояние warehouseId
для отслеживания выбранного склада, для обновления состояния родительских компонентов (inventoryId) из дочернего компонента, я делаю это,
Родительский компонент
<SelectWarehouse
updateTarget={ ( ghostValue ) => {
this.setState( {
warehouseId: ghostValue // updating the state from child comp. value
}, () => {
console.log( 'yokygoky', this.state.warehouseId )
} )
} }
/>
Дочерний компонент
handleChangeWarehouse( e ) {
this.setState( {
selectedWarehouse: e.target.value
}, () => {
this.props.updateTarget( e.target.value ) // Updating the parent props
} )
}
Теперь я пытаюсь отправить только имя состояния от родительского компонента вместо отправки функции, а затем обновить это состояние родительского компонента из дочернего компонента. Это выглядело бы примерно так:
<SelectWarehouse
updateTarget={ warehouseId }
/>
А затем обновите inventoryId из дочернего компонента.
Возможно ли это?
Я протестировал его, отправив только состояние без везения, также невозможно связать этот контекст только с простым состоянием.