首页 > 解决方案 > 表单提交后 Redux 状态未更新

问题描述

我在使用 Redux 更新状态时遇到了一些问题。我正在使用 redux-form 提交一些值,并且我的 action/reducer 可以正常工作。但是我的更新操作/减速器在提交表单后没有改变状态,我得到了相同的状态返回。这是我的 ReduxDevTools 的截图: 在此处输入图像描述 所以当提交表单时,我可以看到 addMovementForm 的值部分中更新了新值(movementWeight:'200')。但是当我的 UPDATE_MOVEMENT 动作被调用时,我仍然得到了我的原始值(movementWeight:'100')。我知道我做错了什么,但我不知道是什么。这是我的行动:

export const updateMovement = (id, formValues) => async dispatch => {
    const response = await movements.patch(`/movements/${id}`, formValues);
    const updateId = response.data.id;
    dispatch({ type: constants.UPDATE_MOVEMENT, payload: { data: response.data, id: updateId } });

我的减速机:

const initialState = [];

const movementReducer = (state = initialState, action) => {
    switch (action.type) {
        case CREATE_MOVEMENT: 
            return [
                ...state, action.payload
            ];
        case UPDATE_MOVEMENT:
             return [ ...state.map(item => item.id === action.payload.id ? {...item, ...action.payload.data} : item)]

标签: reduxreact-reduxstateactionreducers

解决方案


推荐阅读