Отправка Thunk в магазин с помощью Typescript - PullRequest
0 голосов
/ 27 ноября 2018

В моем главном store.ts у меня есть это:

const store = createStore(
  rootReducer,
  composeWithDevTools(applyMiddleware(thunk))
);

store.dispatch(fetchUser());

Таким образом, при первом рендеринге он отправляет и действие fetchUser, чтобы увидеть, может ли он / она видеть содержимое.

Это thunk:

export const fetchUser = (): ThunkAction<
  void,
  TRootState,
  null,
  Action
> => async dispatch => {
  const response = await axios.get(GET_USER_INFORMATION);

  dispatch({
    type: FETCH_USER,
    payload: response.data
  });
};

Но Typescript выдает ошибку:

src/store/index.ts
(14,16): Argument of type 'ThunkAction<void, { userReducer: any; }, null, Action<any>>' is not assignable to parameter of type 'AnyAction'.
  Property 'type' is missing in type 'ThunkAction<void, { userReducer: any; }, null, Action<any>>'.

store / index.ts line 14:

store.dispatch(fetchUser())

Честно говоря, я заблудился.Как я могу это исправить?Я не хочу вводить «любой» в thunk.

1 Ответ

0 голосов
/ 20 июня 2019

store.dispatch принимает только действие, а не функцию.но гром превалирует над этим.вам нужно указать тип thunk.

попробуйте это

composeWithDevTools(applyMiddleware(thunk as ThunkMiddleware<RootState, RootAction>))

также, проверьте это официальные документы

...