2017-01-22 4 views
4

То, что я сейчас делаю это:Как вы предполагаете, чтобы уменьшить поток?

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? Я ничего не могу найти.

ответ

4

Лучший пример, который я нашел до сих пор, - это те, которые использовались в собственном приложении F8 Facebook 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>; 

Он работал очень хорошо для меня до сих пор в моем проекте, хотя я и не отправлять непосредственно в магазине в любом месте.