我正在介绍自己对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可重用于其他状态道具。帮助吗?
答案 0 :(得分:2)
在您的界面中,您期望组件的状态只有一个值为text
的键(名为string
)。您想要的是名称为string
且名称也是string
的任何键。这也是错误消息所说的。您可以将界面更改为:
interface AddTodoState {
[s: string]: string;
}