1 回答

TA貢獻(xiàn)1858條經(jīng)驗(yàn) 獲得超8個(gè)贊
const mapStateToProps = (reducers) => {
return (
reducers.ProductoReducer,
reducers.CategoriasReducer
)
}
看起來(lái)你在狀態(tài)和減速器之間有一些混淆。狀態(tài)是包含所有數(shù)據(jù)的對(duì)象。它只是一個(gè)普通的 javascript 對(duì)象。reducer 是一個(gè)函數(shù),它接受狀態(tài)對(duì)象和一個(gè)動(dòng)作并返回一個(gè)新的狀態(tài)對(duì)象。
您的設(shè)置應(yīng)如下所示:
const productoReducer = (state = INITIAL_PRODUCTOS, action ) => {
switch ( action.type ) {
case 'TRAER_TODOS_LOS_PRODUCTOS':
/* ... code here ... */
default:
return state;
}
}
const categoriasReducer = (state = INITIAL_CATEGORIAS, action ) => {
switch ( action.type ) {
case 'LISTAR_CATEGORIAS':
/* ... code here ... */
default:
return state;
}
}
export const reducer = combineReducers({
producto: productoReducer,
categorias: categoriasReducer,
})
這里我們有兩個(gè)單獨(dú)的類(lèi)別和產(chǎn)品縮減器,每個(gè)都有一個(gè)單獨(dú)的初始狀態(tài)。我們過(guò)去常常combineReducers將它們放在一起,所以現(xiàn)在組合狀態(tài)具有屬性producto和categorias。
您的組件Inventario需要從狀態(tài)訪問(wèn)一堆值: categoriasInventario, productosInventario, loading, 和error。我們沒(méi)有將狀態(tài)傳遞到組件中,而是使用mapStateToProps提取這些值并將它們作為道具傳遞。
const mapStateToProps = (state) => {
return {
categoriasInventario: state.categorias.categorias,
productosInventario: state.productos.productosInventario,
loading: state.categorias.loading || state.productos.loading,
error: state.categorias.error || state.productos.error,
}
}
添加回答
舉報(bào)