【发布时间】:2019-04-12 22:05:52
【问题描述】:
我有一个代码 sn-p 下面我不太确定它是否正确完成。
这是我的代码块:
onChangeMethod(event) {
this.setState(prevState => ({
list: [...prevState.list, event.value]
}));
}
我看到了另一个例子here,我在这里修改了我的代码。可以这样做吗?意思是,我可以将传递给onChangeMethod()的事件值直接用在setState()中声明的函数中吗?
onChangeMethod(event) {
this.setState((state, event.value) => ({
list: state.list.push(event.value)
}));
}
欢呼社区
【问题讨论】:
-
你的第一个 sn-p 很好,除了你应该从事件目标中提取
value,因为给setState的函数将被异步调用。const { value } = event.target; this.setState(prevState => ({ list: [...prevState.list, value] })); -
第一个是推荐的。我永远喜欢第一个
-
有人能告诉我 prevState 是怎么产生的吗?我需要在任何地方声明吗?
-
@AKJ 给
setState的参数是一个函数,该函数的第一个参数是之前的状态。在您的代码中,您将该参数命名为prevState,但您可以将其命名为您认为合适的任何名称,例如previousState代替。
标签: javascript arrays reactjs setstate