Попытка создать простое CRUD-приложение, использующее реагирование, axios и mongoose.
Вот мои аксиозы:
deleteUser(id) {
axios.delete(`${rootUrl}/api/users/${this.state.id}`, {
params: { id }
})
.then(response => {
// this.setState({ users: response.data });
console.log('deleteUser response', response, this.state);
});
}
Вот соответствующий маршрут API:
router.delete('/users/', (req, res) => {
const { id } = req.body;
User.findByIdAndDelete(id, (error, data) => {
if (error) {
console.log('error in deleting!');
throw error;
} else {
console.log('user has been deleted', data);
res.status(204).json(data);
}
});
});
Возвращает
DELETE /api/users/?id=5b34e5b5dfef8b4sd234567 204 47.816 ms - -
Но когда я получаю пользователей, удаленный пользователь остается.
Вот рендеринг, в который я отображаю состояние. Я думаю, что правильно ввел идентификатор, но я не уверен, что еще попробовать:
{this.state.users.map(user => {
return (
<div className="Users1" key={user._id}>
<Card>
<CardBody>
<CardTitle>{user.username}</CardTitle>
<CardText>{user._id}</CardText>
<Button onClick={() => this.deleteUser(user._id)}
key={user._id}
type="button"
color="danger"
>
X
</Button>
</CardBody>
</Card>
</div>
);
})}
и вот состояние:
state = {
users: [],
id: ''
};