状态属性无法在react + ts的onChange上使用?

时间:2019-03-22 03:47:26

标签: reactjs typescript

我正在介绍自己对js ts的反应,这是我的代码和onChange:

interface AddTodoState {
  text: string;
}
class AddTodo extends Component<AddTodoProps, AddTodoState> {
  state = {
    text: ''
  };

  onChange = (e: React.ChangeEvent<HTMLInputElement>) => {
    const { name, value } = e.target;
    this.setState({
      [name]: value // error here
    });
  };

我得到的错误是:

  

类型'{{[x:string]:string; }

我之所以这样编码,是因为我希望onchange可重用于其他状态道具。帮助吗?

1 个答案:

答案 0 :(得分:2)

在您的界面中,您期望组件的状态只有一个值为text的键(名为string)。您想要的是名称为string且名称也是string的任何键。这也是错误消息所说的。您可以将界面更改为:

interface AddTodoState {
    [s: string]: string;
}