表单提交后 Redux 状态未更新

时间:2021-07-27 15:02:20

标签: redux react-redux state action reducers

我在使用 Redux 更新状态时遇到了一些问题。我正在使用 redux-form 提交一些值,我的 action/reducer 可以很好地工作。但是我的更新操作/减速器在表单提交后没有改变状态,我得到了相同的状态返回。这是我的 ReduxDevTools 的屏幕截图: enter image description here 因此,当提交表单时,我可以看到 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)]

0 个答案:

没有答案