我使用typescript-fsa
和typescript-fsa-reducers
包簡單地在TypeScript React應用程序中創建動作和縮減器。如何在TypeScript中使用React,Redux進行API調用
const actionCreator = actionCreatorFactory();
export function signInHandler(state: UserState, action: Action): UserState {
// ????
return { ...state };
}
export const signIn = actionCreator.async<SignInRequest, RequestResponse<SignInResponse>>("USER_SIGNIN");
export const UserReducer = reducerWithInitialState({ signedIn: false } as UserState)
.casesWithAction([signIn.started, signIn.done], signInHandler)
.build();
用法在組件:
export default connect<StateProps, DispatchProps>(
(state: RootState) => ({} as StateProps),
(dispatch: Dispatch<RootState>) => {
return {
signIn: (userName: string, password: string) => dispatch(signIn.started(new SignInRequest(userName, password)))
};
}
)(SignIn);
現在我卡住了。我不知道如何對我的API進行HTTP調用,以便在API響應到達時,組件分派調度下一個動作時發送請求。我想用承諾。 如何解決?
你見過'typescript-fsa'中的異步操作文檔嗎? https://github.com/aikoven/typescript-fsa#async-action-creators –
是的,但我不知道應該在哪裏進行API調用。行動,行動創造者還是減速器?我想看一個例子 – micnyk