Thunks не отображаются в списке действий в React Native Debugger. - PullRequest
0 голосов
/ 25 сентября 2018

На сегодняшний день я выполнил два проекта React / Redux, первый с использованием нашего собственного промежуточного программного обеспечения, а самый последний с использованием redux-thunk.В первом мы использовали «обычные» объекты действий для наших асинхронных действий, которые интерпретировалось нашим промежуточным программным обеспечением.В этом случае наши действия по понятным причинам появились в списке действий в собственном отладчике реагирования.

Однако в последнем проекте я заметил, что наши команды не отображаются как действия вотладчик, который вызвал следующие вопросы:

1) Это нормально?2) Если так, люди считают, что это не проблема?3) У других библиотек асинхронных действий такая же проблема?

1 Ответ

0 голосов
/ 28 сентября 2018

Можете ли вы поделиться со мной своим thunk?Thunks возвращает функции, которые промежуточное программное обеспечение thunk передает диспетчеру и вызывает.Если вы отправляете действие внутри функции, которую возвращает thunk, вы увидите отправку.Это просто не будет от thunk.Пример:

export const gotSomething = data => {
  return {
    type: GOT_SOMETHING,
    data,
  };
};

export const getSomething = () => { // <-- This is our thunk!
  return async dispatch => {
    const { data } = await axios.get('/something');
    dispatch(gotSomething(data)); <-- This is the only thing being dispatched
  };
};

Единственное, что действительно будет отправлять здесь, это GOT_SOMETHING.

Таким образом, порядок такой:

  1. Вы называете «отправка»гром (но не совсем).
  2. Redux (или промежуточное ПО thunk) проверит, возвращает ли объект, который вы «отправили», объект или функцию.
  3. Если это функция, то эта функция вызывается и диспетчеризацияпредоставляется этой функции
  4. Эта функция отправляет некоторое действие (вещь, которую вы на самом деле отправили)

Таким образом, даже если вы технически «вызываете диспетчеризацию» для своего thunk, выфактически только отправляет действие внутри функции, которую возвращает ваш thunk.Надеюсь, это поможет!

...