所以我使用的是this.setState()
的函数形式,在这里传递一个返回对象的函数。
但是,当我尝试将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
}));
};
但我怀疑这是不是正确的打点方式。
发布于 2018-08-12 01:17:25
像这样的东西应该是可行的
onInputChange = event => {
event.persist();
this.setState(() => ({
...this.state,
[event.target.name]: event.target.value
}));
};
尽管我会说我最喜欢你的最后一次尝试。
以下是有关react -> https://reactjs.org/docs/events.html中的synth事件的文档
此外,函数式setState签名接收组件的当前状态和下一个属性作为参数,而不是您所拥有的(prevState, event) => {
。
https://stackoverflow.com/questions/51801900
复制相似问题