【发布时间】:2026-02-02 12:05:01
【问题描述】:
所以我有一个查询钩子,我希望通过它用数据填充状态变量。问题是,在 useEffect 中,查询作为 {} 对象返回,但在 useEffect 正确返回数据之后(见图)。我试图在所有变量定义之后放置 useEffect ,但这会发出钩子渲染错误。我在这里忽略了什么以及如何解决这个问题?
// Single Item Query
const { data: singledItemData, error: errorSingleItem, loading: loadingSingleItem } = useQuery(
SINGLE_ITEM_QUERY, {
variables: {
id: props.id,
}
}
);
useEffect(() => {
console.log("singledItemData in useEffect = ", singledItemData);
if (singledItemData.item) {
setColor(singledItemData.item.color.name);
}
}, []);
// User hook variables
if (!user) return null;
if (user.error) return <Error error={user.error} />;
// Single Item Query variables
if (loadingSingleItem) return <p>Loading...</p>;
if (!singledItemData.item) return <p>No Item Found for ID {props.id}</p>;
console.log("Single Item Data = ", singledItemData);
【问题讨论】:
标签: reactjs react-hooks