gpt4 book ai didi

reactjs - 返回上一个屏幕时执行 useQuery() Hook react 原生堆栈导航器

转载 作者:行者123 更新时间:2023-12-03 16:36:09 25 4
gpt4 key购买 nike

我知道 React 中的固定规则之一是您不能在功能组件的方法内执行任何钩子(Hook),甚至不能在其他钩子(Hook)(如 useEffect 钩子(Hook))内执行任何钩子(Hook)。它必须在组件本身的主体中执行。

所以今天在开发一个测验应用程序时,我遇到了这样一种情况,在堆栈导航器上通过一个屏幕后,我想通过单击后退按钮再次返回该屏幕。但是这一次,我想使用 Apollo Client 提供的 useQuery 钩子(Hook)使用来自 graphql 查询的数据来修改上一个屏幕上的信息。

我可以使用 isFocused 检测上一个屏幕是否是焦点。 Prop 上的属性。如果它发生变化,那么我将使用 useQuery 再次获取数据。

我可以这样做:

    React.useEffect(() => {
//how do I fetch data from here using useQuery if React prohibits me to use useQuery here?
}, [props.isFocused]);

所以这是我的问题,有没有办法解决这个问题?我会很感激你的回应。

最佳答案

在 reactjs 上发现了一个类似问题的问题,我在其中加载了一个带有数据的页面,然后转到另一个页面将文档添加到数据库中,然后在完成后返回到原始页面。
更改默认值 fetchPolicynetwork-only确保我始终获得最新的可用数据。

const { loading: loadingData, error, data } = useQuery(GetData, {
fetchPolicy: "network-only"
引用: https://www.apollographql.com/docs/react/data/queries/#setting-a-fetch-policy

关于reactjs - 返回上一个屏幕时执行 useQuery() Hook react 原生堆栈导航器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60704860/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com