我目前正在做的是:
export type Action =
{ type: 'FOO' }
| { type: 'BAR' }
export type Thunk = (dispatch: Dispatch, getState: GetState) => Action | Thunk
export type Dispatch = ReduxDispatch<Action> & (action: Thunk) => void
但如果您直接在store
上发送,那么在不重新创建store
的情况下无效:
export type Store = ReduxStore<State, Action>
一般来说,我的thunk解决方案似乎还有其他小问题。有没有人有redux-thunk
的工作库定义?我找不到任何地方。
答案 0 :(得分:7)
我到目前为止找到的最好的例子是Facebook自己的F8应用here中使用的那些。
这与你的非常相似:
export type Dispatch = (action: Action | ThunkAction | PromiseAction | Array<Action>) => any;
export type GetState = () => Object;
export type ThunkAction = (dispatch: Dispatch, getState: GetState) => any;
export type PromiseAction = Promise<Action>;
到目前为止,在我的项目中,它对我来说效果很好,但我不会直接在商店任何地方发送。