Reactjs 删除项后,redux reducer不更新状态

Reactjs 删除项后,redux reducer不更新状态,reactjs,redux,Reactjs,Redux,我正在通过节点从数据库中删除一个项目,该节点工作正常。然后,我呼吁采取行动: .then(() => dispatch(removeBaseSuccess())) 据我所知,我不需要将参数传递给分派的操作,因为我们没有添加任何内容。因此,操作函数如下所示: export const REMOVE_BASE_SUCCESS = "REMOVE_BASE_SUCCESS"; export const removeBaseSuccess = () => ({ type: REMOVE

我正在通过节点从数据库中删除一个项目,该节点工作正常。然后,我呼吁采取行动:

.then(() => dispatch(removeBaseSuccess()))
据我所知,我不需要将参数传递给分派的操作,因为我们没有添加任何内容。因此,操作函数如下所示:

export const REMOVE_BASE_SUCCESS = "REMOVE_BASE_SUCCESS";
export const removeBaseSuccess = () => ({
  type: REMOVE_BASE_SUCCESS
});
此函数中的控制台日志不会触发,但会在已调度操作触发之前和之后触发控制台日志,因此我知道会调用
removebasesucture
。转到减速器:

else if (action.type === REMOVE_BASE_SUCCESS) {
    return Object.assign({}, state, {
        bases: [...state.bases]
    })      
}
我的印象是,返回的状态(带有spread操作符)足以重新呈现新状态,因为该项已被删除。
页面不会重新呈现,删除的项目仍会显示,直到我手动刷新页面

您应该手动从状态中删除项目。在您的例子中,您只需将
state.base
赋值为与以前相同的值。您可以将要从状态删除的基添加到操作创建者中:
export const removeBaseSuccess=(base)=>({type:remove\u base\u SUCCESS,payload:base})
然后您可以在reducer中进行筛选,并从状态中删除
base
。难道不应该出现一个成功的控制台日志吗?我没有收到关于它们不工作的错误消息,事实上,我得到的是一个空白控制台。filter()函数不起作用,我认为这是因为它从未获得数据