【发布时间】:2017-08-28 20:12:10
【问题描述】:
我必须编写一个具有两个版本的集成聊天模块 - 一个小的站点内窗口(如 facebook messenger)和在新选项卡中打开的完整版本(新的 react-router 路由)。因此,该模块导出两个组件:<ChatWindow /> 和 <ChatFullView /> 分别用于这些视图。
// 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已经这样做了,为什么还需要单独导出?
标签: javascript reactjs redux react-router