我有一个化简器,为了计算新状态,我需要操作中的数据以及该化简器未管理的部分状态数据。具体来说,在下面将显示的减速器中,我需要访问该accountDetails.stateOfResidenceId字段。
accountDetails.stateOfResidenceId
initialState.js:
export default { accountDetails: { stateOfResidenceId: '', accountType: '', accountNumber: '', product: '' }, forms: { blueprints: [ ] } };
FormsReducer.js:
import * as types from '../constants/actionTypes'; import objectAssign from 'object-assign'; import initialState from './initialState'; import formsHelper from '../utils/FormsHelper'; export default function formsReducer(state = initialState.forms, action) { switch (action.type) { case types.UPDATE_PRODUCT: { //I NEED accountDetails.stateOfResidenceId HERE console.log(state); const formBlueprints = formsHelper.getFormsByProductId(action.product.id); return objectAssign({}, state, {blueprints: formBlueprints}); } default: return state; } }
index.js(根减速器):
import { combineReducers } from 'redux'; import accountDetails from './accountDetailsReducer'; import forms from './formsReducer'; const rootReducer = combineReducers({ accountDetails, forms }); export default rootReducer;
如何访问此字段?
我将为此使用thunk,这是一个示例:
export function updateProduct(product) { return (dispatch, getState) => { const { accountDetails } = getState(); dispatch({ type: UPDATE_PRODUCT, stateOfResidenceId: accountDetails.stateOfResidenceId, product, }); }; }
基本上,您会获得操作所需的所有数据,然后可以将该数据发送到减速器。