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
)