Client.watchQuery non può essere chiamato con fetchPolicy su "standby" -- Errore gettato al caricamento della pagina da useLazyQuery

0

Domanda

Ho una pagina scritta in tsx che continua a bloccarsi su carico con l'errore client.watchQuery cannot be called with fetchPolicy set to "standby"anche se la query in questione è useLazyQuery (e che quindi non ha ancora eseguito), e ha la possibilità fetchPolicy: 'no-cache'. Si blocca per me, ma non per i miei compagni, che mi fa pensare che potrebbe avere qualcosa a che fare con le versioni del pacchetto di forse il mio locale dattiloscritto, ma io ho impostato e re-impostato ogni modo posso pensare con nessun miglioramento. Il codice in questione e pacchetto.json sono al di sotto. Comprensione a tutti, sarebbe meraviglioso.

// myfile.tsx
const [getRoles] = useLazyQuery(GET_ALL_ACCOUNT_ROLES, {
    fetchPolicy: 'no-cache',
    onError: (e) => {
      console.error(e.message);
      showPrompt({ type: 'error', message: 400 });
    },
    onCompleted: async (data) => {
      const {
        getAllAccountRoles: { data: res }
      } = data;
      setAllRoles(res);
    }
  });
package.json
"dependencies": {
    "@apollo/react-hooks": "^4.0.0",
    "@aws-amplify/api": "^4.0.13",
    "@aws-amplify/auth": "^4.1.3",
    "@emotion/react": "^11.4.1",
    "@emotion/styled": "^11.3.0",
    "@loadable/component": "^5.15.0",
    "@mui/icons-material": "^5.1.0",
    "@mui/material": "^5.1.0",
    "@mui/system": "^5.1.0",
    "@reach/router": "^1.3.4",
    "@rinxun/custom-questions": "^1.1.2",
    "@testing-library/jest-dom": "^5.11.4",
    "@testing-library/react": "^11.1.0",
    "@testing-library/user-event": "^12.1.10",
    "apollo-boost": "^0.4.9",
    "apollo-cache-inmemory": "^1.6.6",
    "apollo-client": "^2.6.10",
    "apollo-link": "^1.2.14",
    "apollo-link-context": "^1.0.20",
    "apollo-link-http": "^1.5.17",
    "aws-appsync-auth-link": "^3.0.6",
    "check-equal": "^1.0.7",
    "clsx": "^1.1.1",
    "dotenv": "^10.0.0",
    "env-cmd": "^10.1.0",
    "mockjs": "^1.1.0",
    "qrcode.react": "^1.0.1",
    "react": "^17.0.2",
    "react-dom": "^17.0.2",
    "react-dropzone": "^11.3.4",
    "react-scripts": "4.0.3",
    "store": "^2.0.12",
    "uuid": "^8.3.2"
  },
  "devDependencies": {
    "@storybook/addon-actions": "^6.3.2",
    "@storybook/addon-essentials": "^6.3.2",
    "@storybook/addon-links": "^6.3.2",
    "@storybook/node-logger": "^6.3.2",
    "@storybook/preset-create-react-app": "^3.1.7",
    "@storybook/react": "^6.3.2",
    "@types/aws4": "^1.5.2",
    "@types/jest": "^26.0.24",
    "@types/loadable__component": "^5.13.4",
    "@types/qrcode.react": "^1.0.2",
    "@types/react": "^17.0.15",
    "@types/react-dom": "^17.0.9",
    "@types/uuid": "^8.3.1",
    "@typescript-eslint/eslint-plugin": "^4.29.1",
    "@typescript-eslint/parser": "^4.29.1",
    "aws4": "^1.11.0",
    "babel-eslint": "^10.1.0",
    "babel-loader": "8.1.0",
    "eslint": "^7.32.0",
    "eslint-config-react-app": "^6.0.0",
    "eslint-plugin-flowtype": "^5.9.0",
    "eslint-plugin-import": "^2.24.0",
    "eslint-plugin-jsx-a11y": "^6.4.1",
    "eslint-plugin-react": "^7.24.0",
    "eslint-plugin-react-hooks": "^4.2.0",
    "graphql": "^15.5.1",
    "lint-staged": "^11.1.1",
    "prettier": "2.3.2",
    "typescript": "^4.3.5",
    "web-vitals": "^1.0.1"
  },
3
1

Ho avuto un problema simile. Tracciate di nuovo il problema useQuery non sembra utilizzare defaultOptions in 3.5 in @apollo/client (una dipendenza di @apollo/react-hooks).

La soluzione per me è stato il downgrade da parte di impostazione "@apollo/client": "~3.4.0" nel package.json ed eseguire npm install. Controlla il tuo package-lock.json per assicurarsi di aver sostituito il 3.5.x versione.

2021-11-25 03:34:03
1

@apollo/react-hooks ha una dipendenza di @apollo-client.

Se hai importato useQuery da @apollo/react-hooks, allora avete bisogno di importare useQuery/useLazyQuery da @apollo-client invece di @apollo/react-hooksinsieme con la versione inferiore a 3.5.

2021-11-29 19:47:41
1

Ho perlustrato internet per questo errore su una build con un esistente reagire app che utilizza nwb prima di inciampare su questo. Nel mio caso, il apollo client versione 3.0.2. Di aggiornare il mio pacchetto.json "@apollo/client": "~3.4.0" e re esecuzione npm i infine ha fatto il trucco. Grazie @GratefulGuest!

2021-11-29 18:26:57

In altre lingue

Questa pagina è in altre lingue

Русский
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................