如何调用具有先前状态的setState加上受控组件中的附加值? 典型的例子是: Increment() { this.setState((prevState, props) = ({counter: prevState.counter = props.step})} 但是,如何根据prevState和处理程序中的
典型的例子是:
Increment() { this.setState((prevState, props) => ({counter: prevState.counter = props.step}) }
但是,如何根据prevState和处理程序中的值更新状态.
例如(我知道这个例子是错误的,因为你不能将值传递给setState回调):
HandleOnAddItem(evt, { value }) { this.setState((prevState, props, value) -> ({items: value, ...prevState.items}) }如果要在事件处理函数中传递该值,那么它将在setState中可用而不会传递给updater函数.
写这样:
HandleOnAddItem(evt, { value }) { this.setState((prevState, props) => ({items: value, ...prevState.items})) }
如果您只更新一个不依赖于先前状态的状态属性,我认为在您的情况下,那么直接您可以写:
HandleOnAddItem(evt, { value }) { this.setState({ items: value }) }
请查看此答案以获取更多详细信息:How do JavaScript closures work?
例:
//setTimeout will call the method after 2sec, similar to setState let abc = a => {setTimeout(() => console.log('a', a), 2000)}; abc(10);