我必须编写一个集成的聊天模块,它有两个版本 - 一个小型的现场窗口(如facebook messenger)和一个在新选项卡中打开的完整版本(一个新的react-router路线)。因此,这个模块分别输出两个组件:<ChatWindow />
和<ChatFullView />
。
导入React组件的状态和路由
// core application
import {ChatWindow, ChatFullView} from 'chat-module';
// <PageContentWithChat /> contains imported <ChatWindow />
<Switch>
<Route path='/' component={PageContentWithChat} />
<Route path='/fullview' component={ChatFullView} />
</Switch>
所以,问题是:
我应该在哪里申报了Redux存储和管理这些对他们俩的? (他们必须有一个统一的存储,因为从窗口版本的消息应该在众目睽睽之下,反之亦然渲染)
编辑: 我想控制从内部模块:
// in module
const store = createStore(reducer);
....
<Provider store={store}>
<ChatWindow />
<ChatFullView />
</Provider>
但恐怕我不能单独导出这些组件,因为它们是用<Provider />
包装的。怎么可能解决这个问题?
为什么如果'chat-module'已经做到这一点,你需要单独导出每一个? –