我有一个输入,其中填充了从存储为Redux状态的API返回的值:
state = {
popoverScenarioName: null,
}
scenarioNameChange = (e) => (
this.setState({popoverScenarioName: e.target.value})
)
// ....
<StyledInput
placeholder="Scenario Name"
onChange={(e) => scenarioNameChange(e)}
onFocus={(e) => e.target.select()}
value={this.state.scenarioName || database.inputs.scenarioName}
/>
当我单击输入并按退格键以清除整个字段时,它总是用database.inputs.scenarioName
重新填充值。
我尝试将状态设置为
state = {
popoverScenarioName: null || this.props.database.inputs.scenarioName,
}
但这似乎也不起作用。我的另一个猜测是编写一个直接更改database.inputs.scenarioName
的调度程序吗?
答案 0 :(得分:0)
state = {
popoverScenarioName: null,
}
scenarioNameChange = (e) => (
this.setState({popoverScenarioName: e.target.value})
)
clickHandler = () => {
//...doing something here
setState({popoverScenarioName: null})
}
<StyledInput
placeholder="Scenario Name"
onChange={(e) => scenarioNameChange(e)}
onFocus={(e) => e.target.select()}
value={this.state.popoverScenarioName}
/>
<button onClick={this.clickHandler}>add todo</button>
您的点击处理程序在哪里?
单击后,清除您的表单
这是来自redux状态“ this.props.database”的内容。
答案 1 :(得分:0)
我是通过这个道具实现的:
scenarioName={this.state.popoverScenarioName === null ? database.inputs.scenarioName : this.state.popoverScenarioName}