代码之家  ›  专栏  ›  技术社区  ›  jedierikb grijalvaromero

在子组件中使用Reducer而不进行额外渲染?

  •  0
  • jedierikb grijalvaromero  · 技术社区  · 3 年前

    我有一个仪表板应用程序,通过 useReducer immer 以更新状态。当React准备好渲染时,这些更新可用。

    我想邀请其他人为我的应用程序制作自己的仪表板小工具。这些小部件将由来自仪表板的reducer的派生状态驱动。

    一些复杂的小部件可能也想 使用减速器 本地。它们可能有自己的本地数据流和输入。这里有一个设计问题- 小部件 使用减速器 将是仪表板其余部分后面的一个渲染!

    据我所知,这是因为仪表板的输出 使用减速器 仅在渲染之前可用,这意味着由该数据驱动的小部件 使用减速器 本地必须通过更新 useEffect 从而等待另一渲染来绘制它们的状态。

    可能的解决方案:

    • “提升状态向上”进入仪表板,但这打破了清洁 利益分离-一个小部件的状态与 其他小部件。这将使维护变得繁琐。
    • useMemo 在小部件中进行争论和处理数据 渲染。为了确保状态不会丢失,我也可以 使用备注 更新并返回最初由生成的值 useRef 。这似乎。。。就像一个反模式。
    0 回复  |  直到 3 年前
    推荐文章