Мне любопытно, если передача setState
в качестве опоры ребенку (немой компонент) нарушает любые "лучшие практики" или повлияет на оптимизацию.
Вот пример, где у меня есть родительский контейнер передача state
и setState
двум дочерним компонентам, где дочерние компоненты будут вызывать функцию setState
.
Я не вызываю явно setState
в дочерних компонентах, они ссылаются на службу для обработки правильная установка свойств состояния.
export default function Dashboard() {
const [state, setState] = useState({
events: {},
filters: [],
allEvents: [],
historical: false,
});
return (
<Grid>
<Row>
<Col>
<EventsFilter
state={state}
setState={setState}
/>
<EventsTable
state={state}
setState={setState}
/>
</Col>
</Row>
</Grid>
)
}
Пример службы setState панели управления
function actions(setState) {
const set = setState;
return function () {
return ({
setEvents: (events) => set((prev) => ({
...prev,
events,
})),
setAllEvents: (allEvents) => set((prev) => ({
...prev,
allEvents,
})),
setFilters: (name, value) => set((prev) =>
({
...prev,
filters
})
),
})
}
}
Пока что я не заметил проблем с состоянием.