【发布时间】:2022-01-22 23:47:30
【问题描述】:
我的 react-app 中有上下文,我想在上下文中调用查询并将状态值设置为 api 数据中的对象。我尝试了以下方法,但出现错误,无法读取未定义 (4) 的属性。所以我知道这可能是因为数据尚未返回,因此我无法将状态设置为数组中的对象,那么如何解决这个问题呢?另外我将如何处理状态,即在上下文传递到的组件中加载等。
另一个问题是我应该在上下文中调用 API,还是应该在组件中调用,然后在组件中设置上下文状态?这是更好的方法吗?
到目前为止的代码:
export const DataProvider: React.FunctionComponent = ({ children }) => {
const getApi = async (): Promise<any> => {
const response = await axios.get(`https://www.xxxxxx`).then(res => res.data);
return response;
}
const { data: result, status, error, isFetching }: any = useQuery(['apiData'], () => getApi());
const [myValue, setmyValue] = React.useState(result[4]); // this is causing the issue
return (
<DataContext.Provider value={{myValue, setmyValue, result}}>
{children}
</DataContext.Provider>
);
};
【问题讨论】:
标签: reactjs react-query