我正在构建一个管理应用程序,其中一个是受让人,另一个是用户(投诉者,投诉者)。受让人和投诉人都有自己的仪表板。我想实现,当投诉者提出新投诉时,它将显示在受让人仪表板上,而无需重新加载页面。我已经实现了这个,但这给了我这个错误。
无法对未安装的组件执行 React 状态更新。这是一个空操作,但它表明您的应用程序中存在内存泄漏。要解决此问题,请在 useEffect 清理函数中取消所有订阅和异步任务。
我已经尝试了很多次,但仍然是这个错误。
import React, { createContext, useState, useEffect } from "react";
import http from "../services/httpService";
import { getAssigneeComplaints } from "../services/complaintService";
import config from "../config.json";
export const ComplaintContext = createContext();
const ComplaintContextProvider = props => {
const [assigneeComplaints, setAssigneeComplaints] = useState([]);
// getting all assignee complaints
const getAssigneeComplaint = async () => {
const { data } = await getAssigneeComplaints();
setAssigneeComplaints(data);
console.log(data);
};
// saving a complaint
const saveComplaint = async complaint => {
console.log("new complaint is being saved");
await http.post(config.apiUrl + "/complainer-complaints", complaint);
getAssigneeComplaint();
};
useEffect(() => {
getAssigneeComplaint();
}, []);
return (
<>
<ComplaintContext.Provider
value={{
getAssigneeComplaint,
assigneeComplaints,
saveComplaint
}}
>
{props.children}
</ComplaintContext.Provider>
</>
);
};
export default ComplaintContextProvider;
我希望在受让人的仪表板上显示投诉而不重新加载页面。