【发布时间】:2020-06-27 11:59:54
【问题描述】:
我知道 React 中的一个固定规则是,您不能在功能组件的方法内执行任何钩子,甚至不能在其他钩子(如 useEffect 钩子)内执行任何钩子。它必须在组件本身的主体中执行。
所以今天在开发一个测验应用程序时,我遇到了这样一种情况,在通过堆栈导航器上的一个屏幕后,我想通过单击返回按钮再次返回该屏幕。但是这一次,我想使用 Apollo 客户端提供的 useQuery 钩子,使用来自 graphql 查询的数据来修改上一个屏幕上的信息。
我可以使用道具上的isFocused 属性检测上一个屏幕是否是焦点。如果它发生变化,那么我将使用 useQuery 再次获取数据。
我可以这样做:
React.useEffect(() => {
//how do I fetch data from here using useQuery if React prohibits me to use useQuery here?
}, [props.isFocused]);
所以这是我的问题,有没有办法解决这个问题?非常感谢您的回复。
【问题讨论】:
标签: reactjs react-native react-navigation