我已经看到很多教程在其mapStateToProps方法中都使用了这种方法。
(state.ReducerName)
const mapStateToProps = (state) => {
return {
invoices: state.IcmWebReducer,
}
};
但这对我不起作用。对我有用的是这个
(state.objectParameterName)
const mapStateToProps = (state) => {
return {
params: state.params,
invoices: state.invoices
}
};
我的减速器如下
const initialState = {
invoices : [],
params: {
status: 'Pending',
_sort: 'documentInfo.dueDate',
_order: 'desc',
q: ''
}
};
const IcmWebReducer = (state = initialState, action) =>{
switch (action.type){
case 'UPDATE_INVOICES':
return Object.assign({}, state, {
invoices: action.invoices
});
case 'UPDATE_PARAMS':
return Object.assign({}, state, {
params: action.params
});
default:
return state;
}
};
export default IcmWebReducer;
正确的方法是什么?这有什么区别?
答案 0 :(得分:1)
(state.objectParameterName)
是正确的方法。
mapStateToProps
用于将redux状态用作connected
组件中的props。减速器是一个纯函数,它只需要一些值并返回它。减速器根据触发的操作类型更新并返回状态。
即使您以某种方式在redux状态下定义了reducer并尝试使用它,这也是错误的做法。