将 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 在 中描述的技术。
我正在设计一个导航控制器(松散地基于此的移动版本: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 在