Как установить исходное состояние Redux Reducer на основе вызова AJAX? - PullRequest
0 голосов
/ 17 октября 2018

Используя Redux, я хочу, чтобы начальное состояние одного из моих редукторов основывалось на вызове AJAX.По сути, я использую AJAX для получения некоторых данных, а затем переводю их в состояние редуктора.Однако из-за вызова AJAX редуктор инициализируется с начальным состоянием до завершения вызова AJAX.Как бы вы заставили редуктор подождать, пока вызов AJAX не будет завершен, перед установкой начального состояния?

STORE

export default () => {
  const store = createStore(
    combineReducers({
      settings: settingsReducer,
    })
  );
  return store;
}

REDUCER

var settingsDefaultState;

$.ajax({
  url: 'view/content/settings.xml',
  type: 'GET',
  success: function(xml) {
    //DOING SOME STUFF WITH THE XML FILE HERE
    settingsDefaultState = {
      test: "HELLO WORLD"
    }
  },
  complete: function() {
    console.log("Settings Loaded...");
  }
});


export default (state, action) => {
  var tempState = {...state};
  switch (action.type) {
    default:
      return tempState;
  }
}

1 Ответ

0 голосов
/ 18 октября 2018

Я предлагаю вам инициализировать ваше состояние как loading.Таким образом, вы можете дать отзыв пользователю, что что-то происходит.Затем, когда вызов ajax возвращает ответ, вы запускаете действие, которое установит ваше состояние на желаемое следующее состояние.

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