我不断收到对象可能是“未定义”。TS2532,我知道这是由于将 setViewer 分配给 undefined 所致,我这样做是为了登录匹配,但遇到了另一个问题。现在,我有 2 个数据进入 homeviewer,其中一个是公告,当我尝试访问数据时,它给了我 TS2532 错误。这是下面的代码。我是这些新手,我不知道要为 setViewer ( setViewer: () => undefined
) 更改什么才能使其正常工作。
homeViewer.ts
import { createContext } from 'react';
import { HomeViewer } from '../types/home_viewer';
export interface ViewerContextType {
viewer?: HomeViewer;
setViewer: (home: HomeViewer) => void;
}
export const ViewerContext = createContext<ViewerContextType>({
viewer: {},
setViewer: () => undefined,
});
这需要接口
export interface HomeViewer {
user?: User;
announcements?: Announcement;
}
我使用它的部分
const { viewer } = useContext(ViewerContext);
const data = viewer?.announcements;
console.log(data[0]);