3

我正在制作一个可观察到的 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;

但这不是设置默认状态。

4

3 回答 3

1

实际上,您应该将默认状态作为第二个参数传递。代码中一定存在此处未提供的错误。

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

于 2018-01-13T18:13:10.333 回答
0

我发现了问题,这是因为减速器名称和默认状态属性不匹配,

我的减速器名称是在User我试图将users属性添加到默认状态时。在制作它们之后,users它工作正常

于 2018-01-14T06:52:47.493 回答
0

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

import { compose } from 'redux';

const defaultState = {users: []};
const store = createStore(rootReducer, defaultState, compose(applyMiddleWare(middleWare)));
于 2018-01-29T22:24:41.280 回答