Почему Редукса Сага Редуктор звонит дважды? - PullRequest
0 голосов
/ 25 сентября 2018

Я использую Redux-Saga для обработки данных для хранения, и в настоящее время я запутался в одной проблеме, с которой я раньше не сталкивался.Проблема в том, что мой редуктор вызывает два раза, и в первый раз возвращаемые данные не определены, поэтому я был вынужден добавить значение по умолчанию null .Но, как я вижу в других примерах в интернете, нет случаев использования значений по умолчанию.это мой редуктор `

import { createReducer } from '../utilities';
import { GET_USER_INFO } from '../actions';

const userInfo = createReducer({}, {
  [GET_USER_INFO](state, { userData = null }) {
    console.log(userData, 'userData from userReducer');
    return userData;
  }
});


export default userInfo;

это вспомогательная функция для создания редукторов`

const createReducer = (initialState, handlers) => (state = initialState, action) => {
  if (Object.prototype.hasOwnProperty.call(handlers, action.type)) {
    // console.log(state, 'state from createReducer');
    console.log(action, 'action from createReducer');
    // console.log(initialState, 'initialState from createReducer');
    return handlers[action.type](state, action);
  }
  return state;
};

export default createReducer;

это моя сага `

import axios from 'axios';

import {
  take, put, call
} from 'redux-saga/effects';

import { getUserInfo, GET_USER_INFO } from '../actions';

export default function* currentUserSaga() {
  try {
    yield take(GET_USER_INFO);
    const response = yield call(axios, '/api/current_user');
    console.log(response, 'responseee from user saga');
    yield put(getUserInfo(response.data));
  } catch (err) {
    console.log(err);
  }
}

Как вы можете видеть в моемЯ вынужден написать значение по умолчанию, но, возможно, я делаю что-то не так.Так это правильно?Или, может быть, есть лучшее решение

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...