0

生成されたコードを含む npm パッケージとそれを使用するモバイル パッケージで Yarn ワークスペースを使用しています。

インポートされたクエリから呼び出しを行おうとすると、無効なフック呼び出しが発生します。そのコンポーネントで他のフック (つまり、useState) を使用しても問題なく動作します。

私のモバイル パッケージの package.json インポート: "@workspace-library/core": "1.0.0",

core/src に index.js ファイルがあります。

export * from "./generated/graphql";
export { apollo, useAuth, withAuth };

そして、次のようにクエリをインポートします。

import {
  useArticlesQuery
} from "@workspace-library/core";

const SidebarArticles: FunctionComponent<{ props: any }> = (props: any) => {
  const [test, setTest] = useState("false");
  const data = useArticlesQuery({
    fetchPolicy: "no-cache",
    notifyOnNetworkStatusChange: true,
  });

   return (
    <View>
      <Text>Heyhey</Text>
    </View>
  );
};

念のため、生成された/graphql.jsx で useArticlesQuery を確認できます。

export function useArticlesQuery(baseOptions) { return ApolloReactHooks.useQuery(ArticlesDocument, baseOptions); }

環境:

  • OS: Ubuntu
  • "@graphql-codegen/cli": "^1.13.1",
  • "@graphql-codegen/typescript": "^1.13.1",
  • "@graphql-codegen/typescript-operations": "^1.13.1",
  • "@graphql-codegen/typescript-react-apollo": "^1.13.1",
  • 糸ワークスペース

問題の追加コンテキスト エラー:

Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:
1. You might have mismatching versions of React and the renderer (such as React DOM)
2. You might be breaking the Rules of Hooks
3. You might have more than one copy of React in the same app
* /home/dogchef/Development/workspace-library/packages/core/node_modules/react/cjs/react.development.js:1589:4 in resolveDispatcher
* /home/dogchef/Development/workspace-library/packages/core/node_modules/react/cjs/react.development.js:1597:29 in useContext
* http://192.168.1.2:19001/node_modules/expo/AppEntry.bundle?platform=android&dev=true&minify=false&hot=false:181621:41 in useBaseQuery
* /home/dogchef/Development/workspace-library/packages/core/node_modules/@apollo/react-hooks/lib/react-hooks.cjs.js:550:18 in useQuery
* http://192.168.1.2:19001/node_modules/expo/AppEntry.bundle?platform=android&dev=true&minify=false&hot=false:197883:37 in useArticlesQuery
* components/SidebarArticles.tsx:10:2 in SidebarArticles

4

1 に答える 1