這個問題在這里已經有了答案: 為什么我點擊的用戶沒有被洗掉? (1 個回答) 23 分鐘前關閉。
我無法洗掉我在頁面上選擇的那個。每次串列中的第一個時它都會洗掉。
不知道跟后臺有沒有關系。如果是這種情況,您必須告訴我,那么我會在后端將其與我一起接受。
我的 UserManagement.js:
function UserManagement({ history }) {
const dispatch = useDispatch();
const userLogin = useSelector((state) => state.userLogin);
const userList = useSelector((state) => state.userList);
const { loading } = userLogin;
const { users} = userList;
useEffect(() => {
dispatch(getUsers());
},[dispatch, history]);
const deleteHandler = (id) => {
if (window.confirm("Are you sure? you want to delete")) {
dispatch(deleteUserAction(id));
}
};
console.log(userList);
console.log(users);
return (
<MainScreen title={`List of Users`}>
<Link to="/createUser" id="OpenCreateUserDialogButton">
<Button style={{ marginLeft: 10, marginBottom: 6 }} size="lg">
Create new User
</Button>
</Link>
{loading && <Loading />}
{users &&
users?.map((users) => (
<Accordion>
<Card style={{ margin: 10 }} key={users._id}>
<Card.Header style={{ display: "flex" }}>
<span
// onClick={() => ModelShow(note)}
style={{
color: "black",
textDecoration: "none",
flex: 1,
cursor: "pointer",
alignSelf: "center",
fontSize: 18,
}}
>
{users.userID}
</span>
<div>
<Link to="/profileedit">
<Button
id="EditButton"
>Edit</Button>
</Link>
<Button
id="DeleteButton"
variant="danger"
className="mx-2"
onClick={() => deleteHandler(users.id)}
>
Delete
</Button>
</div>
</Card.Header>
這是我的用戶操作:
export const deleteUserAction = (_id) => async (dispatch, getState) => {
try {
dispatch({
type: USER_DELETE_REQUEST,
});
const {
userLogin: { userInfo },
} = getState();
const url = "http://localhost:8080/user/:id";
const config = {
headers: {
Authorization: `Bearer ${userInfo.token.token}`,
},
};
console.log(userInfo.token.token);
const { data } = await axios.delete(url, config);
dispatch({
type: USER_DELETE_SUCCESS,
payload: data,
});
} catch (error) {
const message =
error.response && error.response.data.message
? error.response.data.message
: error.message;
dispatch({
type: USER_DELETE_FAIL,
payload: message,
});
}
};
后端:
exports.deleteUser = async (request, response) => {
try{
await User.findByIdAndDelete({_id: request.params.id});
response.status(201).json("User deleted Successfully");
} catch (error){
response.status(409).json({ message: error.message});
}
}
Chrome 網路顯示的錯誤
{“訊息”:“模型“用戶”的路徑“_id”的值“{_id:':id'}”(型別物件)轉換為ObjectId失敗“
uj5u.com熱心網友回復:
在您的 axios 請求中,您在設定 url 時缺少 id,因為您的后端通過請求引數獲取 id。
這
const url = "http://localhost:8080/user/:id";
應該是這個
const url = `http://localhost:8080/user/${_id}`;
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/408292.html
標籤:
