我有一个仪表板应用程序,通过
useReducer
和
immer
以更新状态。当React准备好渲染时,这些更新可用。
我想邀请其他人为我的应用程序制作自己的仪表板小工具。这些小部件将由来自仪表板的reducer的派生状态驱动。
一些复杂的小部件可能也想
使用减速器
本地。它们可能有自己的本地数据流和输入。这里有一个设计问题-
小部件
使用减速器
将是仪表板其余部分后面的一个渲染!
据我所知,这是因为仪表板的输出
使用减速器
仅在渲染之前可用,这意味着由该数据驱动的小部件
使用减速器
本地必须通过更新
useEffect
从而等待另一渲染来绘制它们的状态。
可能的解决方案:
-
“提升状态向上”进入仪表板,但这打破了清洁
利益分离-一个小部件的状态与
其他小部件。这将使维护变得繁琐。
-
useMemo
在小部件中进行争论和处理数据
渲染。为了确保状态不会丢失,我也可以
使用备注
更新并返回最初由生成的值
useRef
。这似乎。。。就像一个反模式。