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
Copy file name to clipboardExpand all lines: src/content/reference/eslint-plugin-react-hooks/lints/refs.md
+10-10Lines changed: 10 additions & 10 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -10,7 +10,7 @@ Valida o uso correto de refs, não lendo/escrevendo durante a renderização. Ve
10
10
11
11
## Detalhes da Regra {/*rule-details*/}
12
12
13
-
Refs armazenam valores que não são usados para renderização. Diferente do estado, alterar uma ref não dispara uma nova renderização. Ler ou escrever `ref.current` durante a renderização quebra as expectativas do React. Refs podem não estar inicializadas quando você tenta lê-las, e seus valores podem estar desatualizados ou inconsistentes.
13
+
Refs armazenam valores que não são usados para renderização. Diferente do state, a alteração de uma ref não dispara uma re-renderização. Ler ou escrever `ref.current` durante a renderização quebra as expectativas do React. Refs podem não estar inicializadas quando você tenta lê-las, e seus valores podem estar desatualizados ou inconsistentes.
14
14
15
15
## Como Detecta Refs {/*how-it-detects-refs*/}
16
16
@@ -22,25 +22,25 @@ A lint aplica estas regras apenas a valores que ela sabe serem refs. Um valor é
22
22
constscrollRef=useRef(null);
23
23
```
24
24
25
-
- Um identificador chamado `ref` ou que termina em`Ref` que lê ou escreve em `.current`.
25
+
- Um identificador chamado `ref` ou que termina com`Ref` que lê ou escreve em `.current`.
26
26
27
27
```js
28
28
buttonRef.current= node;
29
29
```
30
30
31
-
- Passado através de uma prop `ref`JSX (por exemplo `<div ref={someRef} />`).
31
+
- Passado através de uma prop JSX `ref` (por exemplo,`<div ref={someRef} />`).
32
32
33
33
```jsx
34
34
<input ref={inputRef} />
35
35
```
36
36
37
-
Uma vez que algo é marcado como ref, essa inferência segue o valor através de atribuições, desestruturação ou chamadas de funções auxiliares. Isso permite que a lint aponte violações mesmo quando `ref.current` é acessado dentro de outra função que recebeu a ref como argumento.
37
+
Uma vez que algo é marcado como ref, essa inferência segue o valor através de atribuições, desestruturação ou chamadas de helper. Isso permite que a lint aponte violações mesmo quando `ref.current` é acessado dentro de outra função que recebeu a ref como argumento.
38
38
39
39
## Violações Comuns {/*common-violations*/}
40
40
41
41
- Lendo `ref.current` durante a renderização
42
42
- Atualizando `refs` durante a renderização
43
-
- Usando `refs` para valores que deveriam ser estado
43
+
- Usando `refs` para valores que deveriam ser state
44
44
45
45
### Inválido {/*invalid*/}
46
46
@@ -67,20 +67,20 @@ function Component({value}) {
67
67
Exemplos de código correto para esta regra:
68
68
69
69
```js
70
-
// ✅ Leia ref em efeitos/manipuladores
70
+
// ✅ Leia ref em effects/handlers
71
71
functionComponent() {
72
72
constref=useRef(null);
73
73
74
74
useEffect(() => {
75
75
if (ref.current) {
76
-
console.log(ref.current.offsetWidth); // OK no efeito
76
+
console.log(ref.current.offsetWidth); // OK no effect
77
77
}
78
78
});
79
79
80
80
return<div ref={ref} />;
81
81
}
82
82
83
-
// ✅ Use estado para valores de UI
83
+
// ✅ Use state para valores de UI
84
84
functionComponent() {
85
85
const [count, setCount] =useState(0);
86
86
@@ -101,7 +101,7 @@ function Component() {
101
101
}
102
102
103
103
consthandleClick= () => {
104
-
console.log(ref.current); //Use o valor inicializado
104
+
console.log(ref.current); //Usa o valor inicializado
### A lint sinalizou meu objeto simples com `.current` {/*plain-object-current*/}
114
114
115
-
A heurística de nome intencionalmente trata `ref.current` e `fooRef.current` como refs reais. Se você está modelando um objeto contêiner personalizado, escolha um nome diferente (por exemplo, `box`) ou mova o valor mutável para o estado. Renomear evita a lint porque o compilador para de inferi-lo como uma ref.
115
+
A heurística de nome intencionalmente trata `ref.current` e `fooRef.current` como refs reais. Se você está modelando um objeto contêiner personalizado, escolha um nome diferente (por exemplo, `box`) ou mova o valor mutável para o state. Renomear evita a lint porque o compilador para de inferi-lo como uma ref.
0 commit comments