我正在使用redux团队提供的非常有用的Todos-Flow redux示例,但我有点难过。该示例使用以下方法定义“Action”类型(即,在一个地方):
export type Action =
{ type: 'ADD_TODO', id: Id, text: Text }
| { type: 'TOGGLE_TODO', id: Id }
| { type: 'SET_VISIBILITY_FILTER', filter: VisibilityFilter }
;
export type Store = ReduxStore<State, Action>;
export type Dispatch = ReduxDispatch<Action>;
然而,我正在尝试使用“鸭子”方法,我的行为,动作创造者和减少者都与个人功能相结合。例如,我试图在每个'ducks'文件中定义更多个性化的动作,如下所示:
export type NavigationAction =
{ type: 'MENU_TOGGLE', toggleState: ToggleState }
| { type: 'CLOSE_MENU' }
| { type: 'UPDATE_SCROLL_LOCATION', scrollLocation: Destination }
;
我的想法是,我会在我的顶级商店文件中有类似的通用商店,操作,调度类型定义,我将减速器等组合在一起(在将商店连接到我的应用之前),不同之处在于现在我的操作类型是传播其相关功能。
我想我只是有点害怕搞乱现状本身,因为我理解Redux和Flow的关系非常复杂。它是一种合适的方法来导入我的每个动作类型定义,然后将它们全部组合为示例中使用的更一般的“动作”类型吗?如果是这样,我该怎么做?干杯!