Javascript 如何从redux存储中删除阵列?

Javascript 如何从redux存储中删除阵列?,javascript,arrays,reactjs,redux,react-redux,Javascript,Arrays,Reactjs,Redux,React Redux,我正在努力删除一个数组。但这不是工作。删除后,我的数组长度和数据保持不变 这是我的前端反应网页 renderAdmin = (id) => { if(this.props.auth.user.userType==='normal') return(<td></td>); return ( <React.Fragment> <td>

我正在努力删除一个数组。但这不是工作。删除后,我的数组长度和数据保持不变

这是我的前端反应网页

renderAdmin = (id) => {
        
        if(this.props.auth.user.userType==='normal') return(<td></td>);
        return (
        <React.Fragment>
            <td>
                <button onClick={() => this.props.changeStatus(id)}
                className="ui button" >Change Status</button>
            </td>
            <td>
                <button onClick={() => this.props.deleteUser(id)}
                className="ui button" >Delete User</button>
            </td>
        </React.Fragment>
        );
    }
这里我首先从后端服务器中删除它。那很好。然后我将res.数据发送到我的减速机负载。删除工作不正常的用户。但是CREATE_错误可以正常工作

这是我的减速机

export default function (state = [] , action) {
    //  console.log(action)
      switch(action.type) {
          case 'ALL_USER' : return action.payload;  
          case 'EDIT_USER' :    
            return state.map(user=>{
                if(user._id === action.payload._id){
                    return action.payload;
                }
                else {
                    return user;
                }
            });
          case 'DELETE_USER' :
            return state.filter(user=>
                user !== action.payload
            )
          default : return state;
      }
  }
按delete按钮后,数据将从服务器中删除,但redux存储始终保持不变。请帮帮我。
谢谢。

这可能是由于对象不完全相等,请尝试对id进行过滤:

return state.filter(user=>
                user._id !== action.payload._id
            )

或者检查深度相等性。

为什么要从
deleteUser
内调度
catch
块外的
CREATE\u ERROR
?CREATE\u ERROR这不完全是错误。你可以说,这是用来发送信息的。就是这样。
user!==action.payload
将不起作用,因为
action.payload
将是一个单独的对象实例,因为它来自
JSON.parse
(即使它代表相同的“真实”实体)。您应该改为比较
\u id
值。试试这个:
return state.filter(u=>u.\u id!==action.payload.whatevertheuseridproperty)
@Dai现在我明白了。谢谢你,兄弟,这是我的工作。你是个救生员。非常感谢你。顺便说一句,你能告诉我,“为什么用户和action.payload不匹配?或者为什么我的previos代码不工作?@Rupam阅读类似的内容
return state.filter(user=>
                user._id !== action.payload._id
            )