Как обойти ошибку «Не удалось найти« хранилище »в контексте« Connect (Component) », когда мой компонент отображается динамически? - PullRequest
0 голосов
/ 03 апреля 2019

У меня React-Redux «в основном работает» с веб-частью SharePoint SPFx с несколькими компонентами, некоторые из которых также используют компоненты Office Fabric.Одна из причин, вызывающая у меня головную боль, - это панель, особенно когда я оборачиваю свой компонент в указанную панель.

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

<Provider store={store}>
   <MainComponent>
      <QuestionComponent>
         <Panel>
            <ReplyComponent />
         </Panel>
      </QuestionComponent>
   </MainComponent>
</Provider>
<Provider store={store}>
   <MainComponent>
      <QuestionComponent>
         <Panel>
            <ReplyComponent />
         </Panel>
      </QuestionComponent>
   </MainComponent>
</Provider>

Я выделил проблему, когда Panel оборачивает мой ReplyComponent.Предположительно обертка препятствует тому, чтобы хранилище / контекст были доступны в моем соединении.Но я не уверен, как заставить это быть там.Есть ли способ в методе подключения ниже, чтобы передать хранилище, когда компонент вложен в нечто вроде Panel, которая изначально не отображалась?

export default connect(mapStateToProps, mapDispatchToProps)(ReplyComponent);

«Вышесказанное» состоит в том, что, когда «Панель» находится в иерархии элементов управления, я получаю «Невосприимчивое нарушение: не удалось найти« хранилище »в контексте«Connect (ReplyComponent)». Либо оберните корневой компонент в a, либо передайте пользовательский поставщик контекста React соответствующему потребителю контекста React в Connect (ReplyComponent) в параметрах соединения. "Но когда он удален, я не получаю это сообщение.

...