上下文API-如何与在React.render根组件之外渲染的组件集成

时间:2018-07-03 09:10:46

标签: reactjs

我有一个由Context API中使用的新App.jsx构成的上下文

render() {
    const mainPath = this.routes.find(route => route.main).path;

    return (
      <i18nContext.Provider value={getTranslation}>
        <Provider store={store}>
          <div className={styles.app}>
            <Router>
              <Switch>
                {this.addRoutes()}
                <Redirect exact from="/" to={mainPath} />
              </Switch>
            </Router>
            <SoftwareVersion />
          </div>
        </Provider>
      </i18nContext.Provider>
    );
  }

它呈现如下:

    getLocale().then(locale => {
      Promise.all([loadGlobalTranslation(locale), loadTradingTranslation(locale)]).then(() => {
        ReactDOM.render(<SpinningWheel />, container, () => {
          moment.locale(locale);
          ReactDOM.render(
            <ErrorBoundary>
              <App />
            </ErrorBoundary>,
            container
          );
        });
      });
    });

但是,我使用的某些库(例如外部模式库和agGrid)在container / ErrorBoundary之外渲染其内容(组件/单元格渲染器等)。结果,如果我在单元格渲染器或模式对话框主体中的某处使用了i18nContext.Consumer,则在组件树中找不到i18nContext.Provider

可以解决吗?

0 个答案:

没有答案