我正在制作一个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;
但这不是设置默认状态。
答案 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)));