编码REACT onChange时遇到麻烦

问题描述 投票:0回答:1

我是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'}
}

任何想法?

reactjs
1个回答
0
投票

尝试将let s = this.state;更改为let s = Object.assign({}, this.state);。如果您要更改它而不是复制它,这可能是它可能不起作用的原因。您可能还需要执行与s.data = { ...s.data, [e.target.name]: e.target.value }相同的操作s.data,通常我的状态保持不变。

© www.soinside.com 2019 - 2024. All rights reserved.