将 React 组件放入 reducer 中以管理状态更新?

Putting React components in reducer to manage state updates?

我正在设计一个导航控制器(松散地基于此的移动版本:https://developer.apple.com/documentation/uikit/uinavigationcontroller

我想允许视图集合(用户可以从中导航)的推送和弹出功能。问题是,我应该在哪里存储我的组件集合。

例如,如果我执行以下操作:

export function pushViewController(view) {}

我可以将其推送到具有状态视图集合的缩减器中吗(显然在这样做时创建了一个新的状态片,实际上不是 'pushing' 以避免混淆我正在变异在这里声明):

const initialState = { views: [<View />] }

我读了一些书,但看到了关于这是否是 'ok' Redux 实践的不同意见。以这种方式推动观点甚至是适当的形式吗?在此先感谢您的意见。

没有。这在技术上 是可能的,但在几个层面上是个坏主意。

第一,your Redux state should be only serializable JS values.

其次,假设您正在谈论 React 组件,您会将描述性对象放入存储中,而不是对实际组件实例的引用。

第三,那些React描述对象本身使用Javascript符号,是不可序列化的

现在, 可以的变体类似于 Dan Abramov 在 中描述的技术。