Я использую Typescript с React для проекта. Основной компонент получает переданное состояние с этим интерфейсом.
interface MainState {
todos: Todo[];
hungry: Boolean;
editorState: EditorState; //this is from Facebook draft js
}
Однако код ниже (только выдержка) не будет компилироваться.
class Main extends React.Component<MainProps, MainState> {
constructor(props) {
super(props);
this.state = { todos: [], hungry: true, editorState: EditorState.createEmpty() };
}
onChange(editorState: EditorState) {
this.setState({
editorState: editorState
});
}
}
Компилятор жалуется, что в методе onChange
, где я только пытаюсь установить свойствоState для одного свойства, свойство todos
и свойство hungry
отсутствуют в типе { editorState: EditorState;}
. Другими словами, мне нужно установить состояние всех трех свойств в функции onChange
, чтобы скомпилировать код. Для его компиляции мне нужно сделать
onChange(editorState: EditorState){
this.setState({
todos: [],
hungry: false,
editorState: editorState
});
}
но нет причин устанавливать свойства todos
и hungry
в этой точке кода. Каков правильный способ вызова setState только для одного свойства в typescript/реагировать?