具有两个参数的函数在 React 中不起作用
Funtions with two parameter not working in React
我有 2 个文件。其中一个是用于请求的“http”文件夹,另一个是 React Component。当我想更改表格并上传个人资料照片时遇到问题。更改表单有效(userDetails),但照片对象无效(UpdatedProfilePicture)。响应返回空对象。
我有一个想法并尝试过。我更改了 URL 并删除了 userDetails,并且 formData 起作用了。但是他们两个都没有用。实际上,第一个参数有效,但第二个参数无效。对于请求,我使用 React Query
组件
const { mutate } = useMutation(apiService.updateUserDetailsInfo);
const onSubmit = () => {
let formData = new FormData();
formData.append("photo", UpdatedProfilePicture);
const urlUserDetails = new URLSearchParams(userDetails);
mutate(urlUserDetails, formData);
};
http 文件夹
updateUserDetailsInfo: async (userDetails, formData) => {
const response = await httpService.patch(`/user/detailsInfo?${userDetails}`, formData);
return response?.data;
},
useMutation
不支持多参数函数,但您可以将所有数据放入一个参数中:
updateUserDetailsInfo: async (variables) => {
const { userDetails, formData } = variables;
const response = await httpService.patch(`/user/detailsInfo?${userDetails}`, formData);
return response?.data;
},
// used like:
const { mutate } = useMutation(apiService.updateUserDetailsInfo);
const onSubmit = () => {
let formData = new FormData();
formData.append("photo", UpdatedProfilePicture);
const userDetails = new URLSearchParams(userDetails);
mutate({ userDetails, formData });
};
我有 2 个文件。其中一个是用于请求的“http”文件夹,另一个是 React Component。当我想更改表格并上传个人资料照片时遇到问题。更改表单有效(userDetails),但照片对象无效(UpdatedProfilePicture)。响应返回空对象。
我有一个想法并尝试过。我更改了 URL 并删除了 userDetails,并且 formData 起作用了。但是他们两个都没有用。实际上,第一个参数有效,但第二个参数无效。对于请求,我使用 React Query
组件
const { mutate } = useMutation(apiService.updateUserDetailsInfo);
const onSubmit = () => {
let formData = new FormData();
formData.append("photo", UpdatedProfilePicture);
const urlUserDetails = new URLSearchParams(userDetails);
mutate(urlUserDetails, formData);
};
http 文件夹
updateUserDetailsInfo: async (userDetails, formData) => {
const response = await httpService.patch(`/user/detailsInfo?${userDetails}`, formData);
return response?.data;
},
useMutation
不支持多参数函数,但您可以将所有数据放入一个参数中:
updateUserDetailsInfo: async (variables) => {
const { userDetails, formData } = variables;
const response = await httpService.patch(`/user/detailsInfo?${userDetails}`, formData);
return response?.data;
},
// used like:
const { mutate } = useMutation(apiService.updateUserDetailsInfo);
const onSubmit = () => {
let formData = new FormData();
formData.append("photo", UpdatedProfilePicture);
const userDetails = new URLSearchParams(userDetails);
mutate({ userDetails, formData });
};