我是REACT的新手,我不仅很难弄清onChange事件道具,而且还有很多其他道具。它传递的道具就是让我。例如
handleSubmit(e) {
let s = this.state;
s.data[e.target.name] = e.target.value;
this.setState(s);
}
在我见过的几乎所有示例(函数的声明)中都这样给出,并且总是抱怨函数def中的e隐式为'any'类型。如果我将其声明为e:any,它将停止抱怨,但随后我无法使s.data [e.target.name]正常工作,因为它说我不能使用“ any”类型作为索引。我无法弄清楚它是如何声明的,或者我是否在某个地方有配置问题。如果我将e.target.name替换为“ myarray”之类的字符串常量,它将起作用。
[REACT应用程序是用纯文本生成的
npx create-react-app test --template typescript
不更改生成的配置文件。
状态被声明为
state = {
data: { fldName: 'something', anotherField: 'somethingelse'}
}
任何想法?
尝试将let s = this.state;
更改为let s = Object.assign({}, this.state);
。如果您要更改它而不是复制它,这可能是它可能不起作用的原因。您可能还需要执行与s.data = { ...s.data, [e.target.name]: e.target.value }
相同的操作s.data
,通常我的状态保持不变。