Skip to content

Commit 350962e

Browse files
docs: translate set-state-in-effect.md to Português (Brasil) (#1219)
Co-authored-by: translate-react-bot[bot] <251169733+translate-react-bot[bot]@users.noreply.github.com>
1 parent 5de06f8 commit 350962e

1 file changed

Lines changed: 24 additions & 24 deletions

File tree

src/content/reference/eslint-plugin-react-hooks/lints/set-state-in-effect.md

Lines changed: 24 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -4,60 +4,60 @@ title: set-state-in-effect
44

55
<Intro>
66

7-
Validates against calling setState synchronously in an effect, which can lead to re-renders that degrade performance.
7+
Valida contra a chamada síncrona de `setState` em um efeito, o que pode levar a re-renderizações que degradam o desempenho.
88

99
</Intro>
1010

11-
## Rule Details {/*rule-details*/}
11+
## Detalhes da Regra {/*rule-details*/}
1212

13-
Setting state immediately inside an effect forces React to restart the entire render cycle. When you update state in an effect, React must re-render your component, apply changes to the DOM, and then run effects again. This creates an extra render pass that could have been avoided by transforming data directly during render or deriving state from props. Transform data at the top level of your component instead. This code will naturally re-run when props or state change without triggering additional render cycles.
13+
Definir o estado imediatamente dentro de um efeito força o React a reiniciar todo o ciclo de renderização. Quando você atualiza o estado em um efeito, o React precisa re-renderizar seu componente, aplicar as alterações ao DOM e, em seguida, executar os efeitos novamente. Isso cria uma passagem de renderização extra que poderia ter sido evitada transformando dados diretamente durante a renderização ou derivando o estado das props. Transforme os dados no nível superior do seu componente. Este código será executado novamente naturalmente quando as props ou o estado mudarem, sem acionar ciclos de renderização adicionais.
1414

15-
Synchronous `setState` calls in effects trigger immediate re-renders before the browser can paint, causing performance issues and visual jank. React has to render twice: once to apply the state update, then again after effects run. This double rendering is wasteful when the same result could be achieved with a single render.
15+
Chamadas síncronas de `setState` em efeitos acionam re-renderizações imediatas antes que o navegador possa pintar, causando problemas de desempenho e lentidão visual. O React precisa renderizar duas vezes: uma para aplicar a atualização de estado e, em seguida, novamente após a execução dos efeitos. Essa renderização dupla é desnecessária quando o mesmo resultado poderia ser alcançado com uma única renderização.
1616

17-
In many cases, you may also not need an effect at all. Please see [You Might Not Need an Effect](/learn/you-might-not-need-an-effect) for more information.
17+
Em muitos casos, você também pode não precisar de um efeito. Consulte [Você Pode Não Precisar de um Efeito](/learn/you-might-not-need-an-effect) para mais informações.
1818

19-
## Common Violations {/*common-violations*/}
19+
## Violações Comuns {/*common-violations*/}
2020

21-
This rule catches several patterns where synchronous setState is used unnecessarily:
21+
Esta regra detecta vários padrões onde `setState` síncrono é usado desnecessariamente:
2222

23-
- Setting loading state synchronously
24-
- Deriving state from props in effects
25-
- Transforming data in effects instead of render
23+
- Definindo estado de carregamento síncronamente
24+
- Derivando estado de props em efeitos
25+
- Transformando dados em efeitos em vez de na renderização
2626

27-
### Invalid {/*invalid*/}
27+
### Inválido {/*invalid*/}
2828

29-
Examples of incorrect code for this rule:
29+
Exemplos de código incorreto para esta regra:
3030

3131
```js
32-
//Synchronous setState in effect
32+
// ❌ setState síncrono em efeito
3333
function Component({data}) {
3434
const [items, setItems] = useState([]);
3535

3636
useEffect(() => {
37-
setItems(data); // Extra render, use initial state instead
37+
setItems(data); // Renderização extra, use o estado inicial em vez disso
3838
}, [data]);
3939
}
4040

41-
//Setting loading state synchronously
41+
//Definindo estado de carregamento síncronamente
4242
function Component() {
4343
const [loading, setLoading] = useState(false);
4444

4545
useEffect(() => {
46-
setLoading(true); // Synchronous, causes extra render
46+
setLoading(true); // Síncrono, causa renderização extra
4747
fetchData().then(() => setLoading(false));
4848
}, []);
4949
}
5050

51-
//Transforming data in effect
51+
//Transformando dados em efeito
5252
function Component({rawData}) {
5353
const [processed, setProcessed] = useState([]);
5454

5555
useEffect(() => {
56-
setProcessed(rawData.map(transform)); // Should derive in render
56+
setProcessed(rawData.map(transform)); // Deve ser derivado na renderização
5757
}, [rawData]);
5858
}
5959

60-
//Deriving state from props
60+
//Derivando estado de props
6161
function Component({selectedId, items}) {
6262
const [selected, setSelected] = useState(null);
6363

@@ -67,12 +67,12 @@ function Component({selectedId, items}) {
6767
}
6868
```
6969

70-
### Valid {/*valid*/}
70+
### Válido {/*valid*/}
7171

72-
Examples of correct code for this rule:
72+
Exemplos de código correto para esta regra:
7373

7474
```js
75-
// ✅ setState in an effect is fine if the value comes from a ref
75+
// ✅ setState em um efeito é aceitável se o valor vier de um ref
7676
function Tooltip() {
7777
const ref = useRef(null);
7878
const [tooltipHeight, setTooltipHeight] = useState(0);
@@ -83,11 +83,11 @@ function Tooltip() {
8383
}, []);
8484
}
8585

86-
//Calculate during render
86+
//Calcular durante a renderização
8787
function Component({selectedId, items}) {
8888
const selected = items.find(i => i.id === selectedId);
8989
return <div>{selected?.name}</div>;
9090
}
9191
```
9292
93-
**When something can be calculated from the existing props or state, don't put it in state.** Instead, calculate it during rendering. This makes your code faster, simpler, and less error-prone. Learn more in [You Might Not Need an Effect](/learn/you-might-not-need-an-effect).
93+
**Quando algo pode ser calculado a partir das props ou do estado existentes, não o coloque no estado.** Em vez disso, calcule-o durante a renderização. Isso torna seu código mais rápido, mais simples e menos propenso a erros. Saiba mais em [Você Pode Não Precisar de um Efeito](/learn/you-might-not-need-an-effect).

0 commit comments

Comments
 (0)