正在做一些 DApp 项目(喜欢 Drizzle!)。但是,我们注意到当我们在 Route 组件下使用 DrizzleProvider 时,会发生一些不当行为。
尝试了两种方法:
- 在 Route 的每个子组件中使用一个 DrizzleProvider
<Router>
<Route path='/DApp/Path'>
<DrizzleProvider>
<DrizzleConsumer>
... // Project code here
</DrizzleConsumer>
</DrizzleProvider>
</Route>
</Router>
提供者状态永远不会更新的错误,即使使用代码强制刷新状态也会保持“未初始化”。直到我们通过 F5 手动刷新浏览器以具有“初始化”状态。(这对于用户体验来说并不理想)
- Usng DrizzleProvider 作为一个共享的全球供应商
<DrizzleProvider>
<Router>
<Route path='/DApp/Path'>
<DrizzleConsumer>
... // Project code here
</DrizzleConsumer>
</Route>
</Router>
</DrizzleProvider>
// ... OR ....
<Router>
<DrizzleProvider>
<Route path='/DApp/Path'>
<DrizzleConsumer>
... // Project code here
</DrizzleConsumer>
</Route>
</DrizzleProvider>
</Router>
加载页面时,永远无法完成这项工作。总是会出现“超出最大更新深度”错误。这导致父页面无限期地重新渲染。
关于导致 DrizzleProvider 和 Route 组件之间不兼容的原因有点想不通。什么是解决方法?
提前致谢!