首页 > 解决方案 > 如何修复错误类型 void 不可分配给使用 react 和 typescript 的类型?

问题描述

我有如下代码,它可以工作。

const { loading, data, error, refetch } = useItemDetailsQuery({
    variables,
    notifyOnNetworkStatusChange: true,
    fetchPolicy: 'network-only',
});

const details: Partial<Item> = data?.itemDetails
    ? data.itemDetails
    : {};

type Item = ItemDetailsQuery['itemDetails'];

type itemDetailsQuery = {
    itemDetails: Pick<
        Types.ItemDetails,
        | 'created'
        | 'description'
        | 'name'
    >
 };

现在使用上面的代码,详细的数据不会得到更新的页面刷新。所以我正在考虑将详细信息的计算逻辑放在 useMemo 中,以便它在数据更改时计算此逻辑,因此无需重新加载页面即可查看新数据。

所以我试着像这样把逻辑放在 useMemo 中

const details: Partial<Item> = React.useMemo(
    () => { data?.itemDetails
        ? data.itemDetails
        : {}
    }, [data]
);

但这给了我错误“类型'void'不可分配给类型'Partial<Pick<ItemDetails,“created”,“description”,“name”}>”

我不知道如何解决这个问题。有人可以帮我解决这个问题。谢谢。

我是使用 react 和 typescript 的新手。在学习的过程中。

标签: reactjstypescript

解决方案


推荐阅读