【发布时间】:2021-10-04 13:40:07
【问题描述】:
我正在开发一个用户填写表单(使用 redux-forms)并向状态添加名称和权重的应用程序。状态如下:
[
{
name: squat,
weight: 100,
id: 1
}
]
我试图弄清楚如何让用户使用 redux-forms 更新权重值。现在,在填写更新表单后,我不断收到相同的状态返回。我可以看到表单记录了新值,但是当我执行我的操作时,我得到了旧值。 这是我的行动:
export const updateMovement = (id, newFormValues) => async dispatch => {
const response = await movements.patch(`/movements/${id}`, newFormValues);
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, movementWeight: action.payload.data.movementWeight} : item)];
default:
return state;
}
};
知道我做错了什么吗?
【问题讨论】:
标签: redux react-redux state action reducers