Я использую 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/реагировать?