XIN*_* LI 5 reactjs use-effect react-query
我想在获取数据后执行一些副作用,例如 setState 和更新上下文。但是,当数据在缓存中时,onSuccess 不会执行。另外 useEffect 不起作用,因为如果数据被缓存,它不会从未定义的数据更改为真实数据。因此它也不会被触发。这样做的最佳方法是什么?谢谢
\n\n我的用例是从 useQuery 返回的数据中提取一些值,并在这些值上设置新状态。
\n
通常,它们\xe2\x80\x99re不应该\xe2\x80\x99需要将状态从react-query复制到本地状态。这只会导致事实来源的重复。最好将它们分开,这样您也可以从后台更新中受益。
\n如果您想转换数据或订阅部分数据,请使用select以下选项useQuery:
const { data } = useQuery(key, fn, { select: data => data.map(...) })\nRun Code Online (Sandbox Code Playgroud)\n或者,您可以根据返回的数据计算一些新数据useMemo,例如:
const { data } = useQuery(...)\n\nconst articles = useMemo(() => data?.map(...), [data])\n// work with articles from here on\nRun Code Online (Sandbox Code Playgroud)\n您也可以将其很好地放入自定义挂钩中。
\n| 归档时间: |
|
| 查看次数: |
4792 次 |
| 最近记录: |