【发布时间】:2019-08-07 21:10:59
【问题描述】:
我想等待一个 thunk 的结果,它异步返回一个字符串。我的问题在最后一行——我不知道如何将cityName 输入为string。
// 错误, Type 'ThunkAction, AppState, undefined, any>' 不能分配给类型 'string'。
代码按预期工作,不幸的是我需要将cityName 输入为any
const getCity = (): Thunk<Promise<string>> => async (
dispatch,
getState
): Promise<string> => {
// ...
const city = await fetchCityApi(query);
dispatch(setUserCity(city));
return city;
};
export const getDataUsingCity = (): Thunk<void> => async dispatch => {
const cityName: string = await dispatch(getCity());
};
我正在为 Thunk 使用一个包装器,只要我的 Thunk 不返回值,它就可以很好地工作:
export type Thunk<R> = ThunkAction<R, AppState, undefined, any>;
【问题讨论】:
-
您是否在您的
dispatch调用中尝试过returning?return dispatch(setUserCity(city));
标签: typescript redux react-redux redux-thunk