我让React-Redux与大多数组件的SharePoint SPFx Web部件“一起工作”,其中一些还使用Office Fabric组件。导致我头疼的是面板,特别是当我将组件包装在面板中时。
我的简化的组件树如下所示...请注意,这只是为了显示层次结构。
<Provider store={store}>
<MainComponent>
<QuestionComponent>
<Panel>
<ReplyComponent />
</Panel>
</QuestionComponent>
</MainComponent>
</Provider>
<Provider store={store}>
<MainComponent>
<QuestionComponent>
<Panel>
<ReplyComponent />
</Panel>
</QuestionComponent>
</MainComponent>
</Provider>
我已将问题隔离到面板包装我的ReplyComponent时。大概包装是阻止存储/上下文在我的连接中可用。但是我不确定如何强制它在那里。无论如何,当组件嵌套在最初未呈现的面板之类的东西中时,下面的connect方法中是否有任何要传递商店的信息?
export default connect(mapStateToProps, mapDispatchToProps)(ReplyComponent);
上面的“ net”是,当“ Panel”位于控件层次结构中时,我得到“ Uncaught Invariant Violation:在“ Connect(ReplyComponent)”的上下文中找不到“ store”。要么包装根,要么或在连接选项中将自定义React上下文提供程序传递给Connect(ReplyComponent)并将相应的React上下文使用者传递给Connect(ReplyComponent)。”但是将其删除后,我不会收到该消息。