Как заменить старые контекстные типы React новыми контекстными API React при использовании данных динамического контекста? - PullRequest
0 голосов
/ 23 октября 2018

У меня есть приложение, которое отображает несколько корней на HTML-странице.Каждый корень отображает на сайте разные (или потенциально одинаковые) страницы или компоненты.Приложение содержит избыточный магазин, так как каждый корень использует одно и то же приложение.Чтобы избежать конфликтов, для каждого корня создается хранилище с избыточностью.

Теперь в хранилище с избыточностью есть ленивые средства уменьшения нагрузки.Редукторы добавляются по мере загрузки компонентов разделения кода.

Для этого в хранилище добавляется функция для вызова replaceReducerfrom redux.

Таким образом, проблема возникает, когда компонент загружается и нуждается в этом.загрузить редуктор также.Компонент нуждается в доступе к корневому хранилищу от провайдера избыточности.

Это было достигнуто с помощью contextTypes в старом api context context для доступа к хранилищу.contextTypes в компоненте-оболочке извлекает текущий корневой экземпляр хранилища.

Но, используя новый api context context, похоже, это не совместимо.Рекомендовалось создать файл контекста и использовать его в любых дочерних компонентах.Делая это, мне нужно будет поместить хранилище в значение поставщика реагирующего контекста.Но выполнение этого означает, что контекст реагирования будет содержать только 1 экземпляр хранилища.

Как можно заставить его работать так же, как старый тип реагирования contextTypes для доступа к контексту поставщика корневого уровня соответственно?

Ответы [ 2 ]

0 голосов
/ 08 апреля 2019

Может быть эта статья поможет вам с переходом на новый контекстный API.Короче говоря: вы можете передать данные, используя устаревший API, и прочитать их вместе с новым.Я бы не рекомендовал делать это в вашем конкретном случае.

0 голосов
/ 25 октября 2018

Я думаю, что здесь есть недоразумение.

По сути, вы хотите прочитать устаревший контекст (который в настоящее время предоставляет React Redux, и что вы читали с contextTypes) с использованием нового контекстного API.Это не сработает.Устаревшие и новые контекстные API полностью не связаны (даже если они обслуживают один и тот же вариант использования).

Когда в будущем React Redux перейдет на новый контекстный API, вы сможете это сделать.Обратите внимание, что в любом случае использование устаревшего контекстного API с React Redux напрямую не рекомендуется, и вам, вероятно, следует использовать connect().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...