0

redux-logger用来查看redux 状态的前后变化我的问题是我的状态似乎在发送动作之前发生了变化:

这里显示了after状态是如何更新的(placementName 属性被正确分配)

这里显示了 **after** 状态如何更新(placementName 属性已正确分配)

这里显示**prev** 状态随着placementName 属性的变化而变化,所以前一个**next** 状态与当前**prev** 状态不同,它们总是应该是

这里显示了prev状态随着placementName 属性的变化,所以之前的next状态与当前的prev状态不一样,它们总是应该是......

如果我在 chrome 控制台中打开和关闭对象,它会重新评估它,然后之前的下一个状态与当前状态的prev相同。我不知道是什么在改变它!我无法使用它以前的数据更新 redux 状态,因为它总是被覆盖。

redux-persist用来让用户使用 React 的服务器端渲染保持登录状态:

const { persistor, store } = configureStore();

const render = Component => {
  ReactDOM.render(
    <AppContainer>
      <Provider store={ store }>
        <PersistGate persistor={ persistor }>
          <BrowserRouter>
            <Component />
          </BrowserRouter>
        </PersistGate>
      </Provider>
    </AppContainer>,
    document.getElementById('root')
  );
};

配置存储():

import { persistStore } from 'redux-persist';
  // Add redux-persist's configuration
  const config = {
    transforms: [immutableTransform()],
    key: 'root',
    storage
  };

const reducer = combineReducers(rootReducer);
const persistedReducer = persistReducer(config, reducer);

// Export the persistor as well
  let persistor = persistStore(store);

  return { persistor, store };

我不确定是否redux-persist与问题有关...

编辑

这是我的减速机

[SAVE_INPUTS]: (state, {toSaveInputs}) => {
    const savedInputs = state.get('savedInputs');
    console.log("\n\nREDUX!\n\n");
// This line here prints the 'new' state before even returning it...
    console.log("Saved Inputs State: ", savedInputs);
    console.log("To save Inputs: ", toSaveInputs);

    const newSavedInputs = [...savedInputs, toSaveInputs];

    return state.merge(Map({
      savedInputs: newSavedInputs
    }));
  },

这样做的结果应该是在 redux 状态下toSaveInputs添加到savedInputs数组中,但它所做的是用新的输入替换之前状态的数组,然后添加新的toSaveInputs

4

0 回答 0