如何将 "event" 对象传递给 "this.setState()" 的功能版本?
How to pass the "event" object to the functional version of "this.setState()"?
所以我使用 this.setState()
的函数形式,你传递一个 returns 一个对象的函数。
但是当我尝试在输入上绑定 onChange 并执行此操作时...
onInputChange = event => {
this.setState(() => ({
...this.state,
[event.target.name]: event.target.value
}));
};
它抛出一个错误说 Cannot read property 'name' of null
显然问题出在事件对象中,那么我如何将事件对象传递给 this.setState() ?
我试过了,但没用...
onInputChange = event => {
this.setState((prevState, event) => ({
...this.state,
[event.target.name]: event.target.value,
}));
};
然而,唯一对我有用的就是这样做......
onInputChange = e => {
const { name, value } = e.target;
this.setState(() => ({
...this.state,
[name]: value
}));
};
但我怀疑这是打点的正确方法。
像这样的东西应该可以工作
onInputChange = event => {
event.persist();
this.setState(() => ({
...this.state,
[event.target.name]: event.target.value
}));
};
虽然我会说我最喜欢你最后的尝试。
这里有关于 React 中合成器事件的文档 -> https://reactjs.org/docs/events.html
此外,函数式 setState 签名接收组件的当前状态和下一个道具作为参数,而不是您拥有的 (prevState, event) => {
。
所以我使用 this.setState()
的函数形式,你传递一个 returns 一个对象的函数。
但是当我尝试在输入上绑定 onChange 并执行此操作时...
onInputChange = event => {
this.setState(() => ({
...this.state,
[event.target.name]: event.target.value
}));
};
它抛出一个错误说 Cannot read property 'name' of null
显然问题出在事件对象中,那么我如何将事件对象传递给 this.setState() ?
我试过了,但没用...
onInputChange = event => {
this.setState((prevState, event) => ({
...this.state,
[event.target.name]: event.target.value,
}));
};
然而,唯一对我有用的就是这样做......
onInputChange = e => {
const { name, value } = e.target;
this.setState(() => ({
...this.state,
[name]: value
}));
};
但我怀疑这是打点的正确方法。
像这样的东西应该可以工作
onInputChange = event => {
event.persist();
this.setState(() => ({
...this.state,
[event.target.name]: event.target.value
}));
};
虽然我会说我最喜欢你最后的尝试。
这里有关于 React 中合成器事件的文档 -> https://reactjs.org/docs/events.html
此外,函数式 setState 签名接收组件的当前状态和下一个道具作为参数,而不是您拥有的 (prevState, event) => {
。