#reactjs #redux #context-api
#reactjs #redux #реагировать-контекст
Вопрос:
Я создал простое приложение react с контекстом в качестве управления состоянием, однако поведение этого контекста по умолчанию всегда повторно отображает каждое состояние, даже если изменения внесены только для одного состояния. Как я могу предотвратить такое поведение, как в Redux, где компонент будет повторно отображаться, если будет изменено используемое состояние?
Я создал это простое приложение в Codesandbox, вы можете попробовать его на https://wu0qz.csb.app /
Спасибо
Комментарии:
1. Разделить контекст на несколько контекстов ContextA и ContextB? Если вы попытаетесь использовать этот подход, вам, вероятно, потребуется использовать a
useMemo
в вашем компоненте поставщика, чтобы значение контекста, содержащее как значение состояния, так и setState, не воссоздавалось для контекста, который не изменился.2. Вот как работает react. Если компонент (
Controller
т.Е.) Выполняется повторно, то все поддерево этого компонента также выполняется повторно.Controller
перенаправляет, когда его состояние обновляется с помощьюComp2
.3. Допустим, у меня есть десять состояний, которыми нужно управлять. Должен ли я разделить их на разные 10 файлов контекста? или есть другой способ сохранить состояния чистыми в одном контексте, не вызывая другие?
4. В этом случае вы, вероятно, захотите использовать контейнер состояний (redux) или реализовать что-то подобное, обернув каждый компонент пользовательского интерфейса и передавая из контекста только те переменные, которые им нужны
5. значит, context на самом деле используется только для передачи реквизита? не для хранения состояний?