javascript - React Redux 与多个 applyMiddleware

标签 javascript reactjs react-native redux redux-thunk

我想使用以下答案 Redux state persistence with a database

import {createStore, compose, applyMiddleware} from 'redux';

const localStorageMiddleware = ({getState}) => {
  return (next) => (action) => {
    const result = next(action);
    localStorage.setItem('applicationState', JSON.stringify(
      getState()
    ));
    return result;
  };
};

const store = compose(
  applyMiddleware(
    localStorageMiddleware
  )
)(createStore)(
  reducer,
  JSON.parse(localStorage.getItem('applicationState'))
)

但是我不明白这里的javascript语法 他如何使用compose(argument)(createStore)(argument)

有没有像createStore(reducer,initialState,compose(argument))这样的替代方案?

另外,初始状态如何传递到这里

const createStoreWithMiddleware = compose(  
  applyMiddleware(thunkMiddleware)
)(createStore);

export default function configureStore(initialState) {  
  const store = createStoreWithMiddleware(rootReducer);
  return store;
}

最佳答案

是的! enhancer()(createStore) 语法是使用 createStore 的旧式方式,我们试图鼓励人们改用较新的语法:

const composedEnhancers = compose(
    firstEnhancer,
    secondEnhancer
);

const store = createStore(
    rootReducer,
    preloadedState,
    composedEnhancers
);

关于javascript - React Redux 与多个 applyMiddleware,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46420481/

相关文章:

javascript - 网络音频频率限制?

javascript - 类不工作 jQuery

javascript - 映射数组以返回具有不同类名的组件

javascript - 如何使用 ES6 import 或 require 导入简单的 JS 脚本 "globally"?

javascript - 如何为单独的 div 添加 javascript?

javascript - onReady() 在浏览器恢复页面时不执行 $.getJSON()

javascript - 找不到模块 : Can't resolve 'moment' in 'node_modules\react-moment\dist' in reactjs

react-native - 点击通知时如何跳转到通知屏幕

react-native - react native : Refresh Controll not working with ScrollView

android - React native/Trouble with AsyncStorage 获取项目