我有一个由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
。
可以解决吗?