mde*_*eus 8 reactjs react-redux
如何调用具有先前状态的setState加上受控组件中的附加值?
典型的例子是:
Increment() {
this.setState((prevState, props) => ({counter: prevState.counter = props.step})
}
Run Code Online (Sandbox Code Playgroud)
但是,如何根据prevState和处理程序中的值更新状态.例如(我知道这个例子是错误的,因为你不能将值传递给setState回调):
HandleOnAddItem(evt, { value }) {
this.setState((prevState, props, value) -> ({items: value, ...prevState.items})
}
Run Code Online (Sandbox Code Playgroud)
如果要在事件处理函数中传递该值,则它将在setState内部可用,而无需传递给更新程序函数。
像这样写:
HandleOnAddItem(evt, { value }) {
this.setState((prevState, props) => ({items: value, ...prevState.items}))
}
Run Code Online (Sandbox Code Playgroud)
如果您仅更新一个不依赖于先前状态的状态属性(如我所见),则可以直接编写:
HandleOnAddItem(evt, { value }) {
this.setState({ items: value })
}
Run Code Online (Sandbox Code Playgroud)
检查此答案以获取更多详细信息:JavaScript闭包如何工作?
例:
HandleOnAddItem(evt, { value }) {
this.setState((prevState, props) => ({items: value, ...prevState.items}))
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
10607 次 |
最近记录: |