将 react-native 添加到 monorepo 后,React apollo hooks 失败

Posted

技术标签:

【中文标题】将 react-native 添加到 monorepo 后,React apollo hooks 失败【英文标题】:React apollo hooks fails after adding react-native to monorepo 【发布时间】:2020-05-05 11:10:58 【问题描述】:

我正在尝试使用 yarn 工作区创建一个带有 monorepo 的 React Web 应用和 React-native 应用。所以我创建了网络和控制器,它工作正常。我能够对我的 apollo-express 服务器进行 graphql 查询。但是,在添加 react-native 应用程序后,我看到了:

我 100% 没有违反任何 react hooks 规则,因为在添加 react-native 应用程序之前它工作正常。

有什么办法可以解决吗?

阿波罗控制器

import  useQuery  from "@apollo/react-hooks";
import gql from "graphql-tag";

export const useHelloQuery = () => useQuery(
     gql`
         
             hello
         
     `
)

反应组件:

function Test() 
     const data = useHelloQuery();

     return (
          <Text>awesoe</Text>
     );

在添加 react-native 之前是完全一样的

【问题讨论】:

【参考方案1】:

您需要更改调用useQuery 的方式,因为这不是使用钩子的正确方式。

您不必担心手动触发 api 调用,useQuery 会为您处理。

import  useQuery  from "@apollo/react-hooks";
import gql from "graphql-tag";

function Test() 
     const response = useQuery(
     gql`
         
             hello
         
     `)

     return (
          <Text>awesoe</Text>
     );

【讨论】:

以上是关于将 react-native 添加到 monorepo 后,React apollo hooks 失败的主要内容,如果未能解决你的问题,请参考以下文章

将 react-native 添加到 monorepo 后,React apollo hooks 失败

将 react-native-web 添加到现有的 react-native 应用程序时出错

在 React-Native 中将 RCTRootView 作为子视图添加到 rootViewController

使用 react-native 抽屉实现侧边栏/汉堡菜单

React-Native 包没有找到 React 标头

React-native:打开表情符号键盘