我迅速创建了这个sandbox,以便更轻松地说明我的问题。
我希望在单击clickableItem
组件的输入时,将simplePopOver
组件的输入的值取为clickableItem
组件的状态的值。
为此,我使用道具初始化了simplePopOver
的状态,但问题是状态始终等于初始值'initialisation'
而道具具有良好的值(选中console.log()
)。你有想法吗 ?这是异步问题吗?
我认为我的解释不明确,但是如果您选中沙箱,它将更加清楚:)
答案 0 :(得分:0)
状态clickableElementText
未声明
使用this.state.textInInput
答案 1 :(得分:0)
您需要实施getDerivedStateFromProps
以根据SimplePopover
组件中道具的变化来更新状态
static getDerivedStateFromProps(props, state) {
console.log(props);
if (props.clickableElementText !== state.prevClickableElementText) {
return {
prevClickableElementText: props.clickableElementText,
textInInput: props.clickableElementText,
}
}
return {
prevClickableElementText: props.clickableElementText
}
}