You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
> Hooks can only be called inside the body of a function component.
10
10
11
-
Existem três razões comuns pelas quais você pode estar vendo-o:
11
+
Existem três razões comuns pelas quais você pode estar vendo a mensagem:
12
12
13
13
1. Você pode ter **versões incompatíveis** do React e React DOM.
14
14
2. Você pode estar **quebrando as [Regras dos Hooks](/docs/hooks-rules.html)**.
@@ -18,7 +18,7 @@ Vamos olhar cada um destes casos.
18
18
19
19
## Versões incompatíveis do React e React DOM {#mismatching-versions-of-react-and-react-dom}
20
20
21
-
Você pode estar usando uma versão do `react-dom` (< 16.8.0) ou `react-native` (< 0.59) que não suporta Hooks ainda. Você pode rodar `npm ls react-dom` ou `npm ls react-native` na pasta da sua aplicação para verificar qual versão esta usando. Se você encontrar mais do que uma delas, isto também pode causar problemas (mais sobre isso abaixo).
21
+
Você pode estar usando uma versão do `react-dom` (< 16.8.0) ou `react-native` (< 0.59) que ainda não suporta Hooks. Você pode executar o script `npm ls react-dom` ou `npm ls react-native` na pasta da sua aplicação para verificar qual versão esta usando. Se você encontrar mais do que uma delas, isto talvez pode também causar problemas (mais detalhes sobre isso abaixo).
22
22
23
23
## Quebrando as Regras dos Hooks {#breaking-the-rules-of-hooks}
24
24
@@ -89,13 +89,13 @@ Você pode usar o [plugin `eslint-plugin-react-hooks`](https://www.npmjs.com/pac
89
89
90
90
Para que Hooks funcionem, a importação do `react` no código da sua aplicação precisa ser resolvida no mesmo módulo que a importação do `react` de dentro do pacote do `react-dom`.
91
91
92
-
Se estas importações do `react` resolverem para dois objetos exportados diferentes, você irá ver este aviso. Isso pode acontecer se você **acidentalmente acabar com duas cópias** do pacote `react`.
92
+
Se estas importações do `react` resolverem para dois objetos exportados diferentes, você verá este alerta. Isso pode acontecer se você **acidentalmente acabar com duas cópias** do pacote `react`.
93
93
94
-
Se você usa o gerenciador de pacotes do Node, você pode rodar este verificador na pasta do seu projeto:
94
+
Se você usa o gerenciador de pacotes do Node, você pode executar este verificador na pasta do seu projeto:
95
95
96
96
npm ls react
97
97
98
-
Se você ver mais do que um React, você irá precisar descobrir por que isso acontece e arrumar a sua árvore de dependência. Por exemplo, talvez uma biblioteca que você está usando incorretamente especifique o `react` como uma dependência (ao invés de uma dependência de pares). Até que esta biblioteca seja arrumada, [a resolução do Yarn](https://yarnpkg.com/lang/pt-br/docs/selective-version-resolutions/) é uma possível solução alternativa.
98
+
Se você ver mais do que um React, você precisará descobrir por que isso acontece e corrigir a sua árvore de dependência. Por exemplo, talvez uma biblioteca que você está usando incorretamente especifique o `react` como uma dependência (ao invés de uma dependência de pares). Até que esta biblioteca seja arrumada, [a resolução do Yarn](https://yarnpkg.com/lang/pt-br/docs/selective-version-resolutions/) é uma possível solução alternativa.
99
99
100
100
Você pode tentar depurar este problema adicionando alguns logs e reiniciando seu servidor de desenvolvimento:
Se ele imprimir `false` então você pode ter dois Reacts e precisa descobrir por que isso aconteceu. [Esta issue](https://github.com/facebook/react/issues/13991) inclue algumas razões comuns encontradas pela comunidade.
113
113
114
-
Este problema pode também aparecer quando você usa `npm link` ou um equivalente. Neste caso, seu bundler pode "ver" dois React — um na pasta da aplicação e outro na pasta da sua biblioteca. Assumindo que `myapp` e `mylib` são pastas irmãs, uma possível resolução é rodar `npm link ../myapp/node_modules/react` de dentro da `mylib`. Isto deverá fazer a biblioteca usar a cópia do React da aplicação.
114
+
Este problema pode também aparecer quando você usa `npm link` ou um equivalente. Neste caso, seu bundler pode "ver" dois React — um na pasta da aplicação e outro na pasta da sua biblioteca. Assumindo que `myapp` e `mylib` são pastas irmãs, uma possível resolução é executar o script `npm link ../myapp/node_modules/react` de dentro da `mylib`. Isto fará com que a biblioteca use a cópia do React da aplicação.
0 commit comments