【发布时间】:2020-01-23 13:55:07
【问题描述】:
在旧的 react-apollo 和现在的 @apollo/react-hoc 中,可以通过传递函数将 API 的响应映射到另一种格式:
config.props 属性允许您定义一个使用道具 [...] 并允许您计算新道具的地图函数
此功能提供了一种通过在其他地方定义 Apollo HOC 从组件中删除丑陋转换代码的方法,并且由于它仅在数据更改时运行,因此不需要记忆。
我看不到如何使用useQuery 执行此操作。 Hooks 只能在 React 组件中直接使用(Rules of Hooks),所以我能想到的只是:
import { fooQuery, mapFoo } from 'api';
...
const { data } = mapFoo(useQuery(fooQuery))
这可能是可以接受的,但它在每次渲染时运行 mapFoo,而使用 useMemo 它变得太多了:
const bar = useQuery(barQuery); // unwanted value
const memoBar = useMemo(() => mapBar(bar), [bar])
我也没有找到其他人在寻找这个丢失的功能,所以我想知道我是否遗漏了什么。还有其他方法吗?
【问题讨论】:
标签: react-apollo