могу написать
const MyComponent: FC = () => {
const [filter, setFilter] = useState<FilterState>(initialFilter)
const [tableData, setTableData] = useState<TableData>(initialTableData)
}
Удобно то, что я могу менять фильтр и данные таблицы отдельно, без писанины вроде
setState({...previousState, filter: newFilter})
Могу ли я что-то похожее сделать в классовом компоненте? Например
class MyComponent extends Component<{}, StateType> {
this.state = {
table: initialTable,
filter: initialFilter
}
private updateFilter = newFilter => {
this.setState({filter: newFilter})
}
}
На старых проектах юзал MobX, и концепция отдельного свойства на часть состояния была очень удобна. В новом проекте MobX не используют, хочу сделать как-то максимально похоже.
Нет, на классах так нельзя
Хотя стоп, почему нельзя? Можно так, как вы написали
Ага я тоже недавно попался ввиду отсутствия практики с классбейзд компонентами😁
Та я что-то не до конца вопрос понимаю
Почему же? Все верно ответил во второй раз. Вызов this.setState выполнит shallow мердж объекта стейта
Ну, это понятно, я изначально подумал, что вопрос вообще не об этом) Не важно, короче, только запутал)
Обсуждают сегодня