存储defaultstate with redux observable middleware

时间:2018-01-13 11:15:26

标签: reactjs redux redux-observable redux-middleware

我正在制作一个redux可观察史诗作为中间件,并且还想提供一个默认状态来存储。在某些地方,我看到applyMiddleware是createStore函数的第三个参数,而在某些地方它是第二个参数。我怎么能实现这个目标呢?

我正在尝试这个

const defaultState = {users: []};
const store = createStore(rootReducer, defaultState, applyMiddleWare(middleWare));

我的主应用程序看起来像这样

import { bindActionCreators} from 'redux';
import { connect } from 'react-redux';
import * as actionCreators from '../actions/actionCreator';
import Main from './Main';
import 'rxjs';

function mapStatesToProps(state) {
    return {
        users: state.users,
        error: state.error
    }
}

function mapDispatchToProps(dispatch) {
    return bindActionCreators(actionCreators, dispatch);
}

const App = connect(mapStatesToProps, mapDispatchToProps)(Main);

export default App;

但这不是设置默认状态。

3 个答案:

答案 0 :(得分:1)

实际上你应该将默认状态作为第二个参数传递。这里没有提供代码中的错误。

您是否尝试过在应用外再现问题?如果你有并且可以分享完整的代码来重现,我可以看看。

答案 1 :(得分:0)

我发现了问题,因为缩减器名称和默认状态属性

不匹配而发生了

我的reducer名称是User,而我试图将users属性添加到默认状态。完成两个users后,它可以正常工作

答案 2 :(得分:0)

你可以尝试在第三个参数中使用“compose”,如下所示吗?

import { compose } from 'redux';

const defaultState = {users: []};
const store = createStore(rootReducer, defaultState, compose(applyMiddleWare(middleWare)));