【发布时间】:2021-02-02 12:52:05
【问题描述】:
我在我的反应项目中使用“mdbootstrap”中的“MDB”数据表,所以我想在单击按钮后删除行。用户从服务器中删除,但前端仍然显示我被删除的用户的行但是在我刷新页面后,该行消失了。删除请求成功发送到服务器。这是我的代码:
class Users extends Component {
state = {
users: [],
tableRows: [],
}
async componentDidMount() {
await axios.get('http://localhost:3000/admin/users', {
headers: {
'x-access-token': localStorage.getItem("token")
}
}
)
.then(response => response.data)
.then(data => {
this.setState({ users: data })
})
.then(() => {
this.setState({ tableRows: this.getusers() })
});
}
getusers = () => {
let users = this.state.users.map((user) => {
return (
{
id: user._id,
name: user.name,
cin: user.cin,
delete: <MDBIcon
icon='trash'
className='red-text'
size='1x'
style={{ cursor: 'pointer' }}
onClick={() => this.handeldelete(user._id)}
/>,
add: <Analys />
}
)
});
return users;
}
handeldelete = async userId => {
await axios.delete("http://localhost:3000/admin/users/" + userId, {
headers: {
'x-access-token': localStorage.getItem("token")
}
})
};
render() {
const data = {
columns: [
{
label: 'USER ID',
field: 'id',
sort: 'asc',
width: 150
},
{
label: 'Name',
field: 'name',
sort: 'asc',
width: 270
},
{
label: 'CIN',
field: 'cin',
sort: 'asc',
width: 200
},
{
label: 'Delet',
field: 'delete',
sort: 'asc',
width: 200
},
{
label: 'ADD ANALYS',
field: 'add',
sort: 'asc',
width: 200
},
],
rows: this.state.tableRows,
};
return (
<div>
<MDBDataTableV5 hover data={data} filter='name' proSelect searchTop searchBottom={false} />
<ToastContainer />
</div>
);
}
}
导出默认用户;
【问题讨论】:
-
按delete的时候可以调用
getUsers函数,同时也会删除用户,重新渲染用户 -
我这样做了,但还是不行!
标签: reactjs