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
`UNSAFE_componentWillUpdate()` вызывается сразу перед рендером при получении новых пропсов или состояния. В этом методе можно выполнить некоторую подготовку перед обновлением. Этот метод не вызывается при первом рендере.
479
479
480
-
Внутри этого метода нельзя вызвать `this.setState()`, а также делать какие-либо действия, которые влияют на обновление компонента перед возвратом `UNSAFE_componentWillUpdate()` (например, вызывать `Redux action`).
480
+
Внутри этого метода нельзя вызвать `this.setState()`, а также делать какие-либо действия, которые влияют на обновление компонента перед возвратом `UNSAFE_componentWillUpdate()` (например, отправка действия Redux).
481
481
482
482
Обычно этот метод можно заменить на `componentDidUpdate()`. Вы можете использовать `getSnapshotBeforeUpdate()` для работы с DOM (например, запоминать положение прокрутки страницы).
483
483
@@ -503,7 +503,7 @@ setState(updater[, callback])
503
503
504
504
Думайте о `setState()`, как о *запросе*, а не как о команде немедленного обновления компонента. Для увеличения производительности React может задержать его выполнение, а затем обновить несколько компонентов за один проход. React не гарантирует моментальное применение изменений в состоянии.
505
505
506
-
`setState()` не всегда обновляет компонент сразу. Этот метод может группировать или откладывать обновление до следующего раза. Это делает чтение `this.state` сразу после вызова `setState()` потенциальной ловушки. Вместо этого используйте `componentDidUpdate()` или колбек`setState()` (`setState(updater, callback)`). Любой из этих вариантов можно запустить для применения обновления. Если вам нужно обновить состояние на основе предыдущего, используйте аргумент `updater`, описанный ниже.
506
+
Метод `setState()` не всегда обновляет компонент сразу. Он может группировать или откладывать обновление до следующего раза. Это делает чтение `this.state` сразу после вызова `setState()` потенциальной ловушки. Вместо этого используйте `componentDidUpdate()` или колбэк`setState()` (`setState(updater, callback)`). Любой из этих вариантов можно запустить для применения обновления. Если вам нужно обновить состояние на основе предыдущего, используйте аргумент `updater`, описанный ниже.
507
507
508
508
`setState()` всегда приводит к повторному рендеру, пока `shouldComponentUpdate()` не возвращает `false`. Если используются мутабельные объекты, и условие рендеринга не может быть реализовано в `shouldComponentUpdate()`, вызывайте `setState()` только при разнице следующего и предыдущего состояния. Это предотвратит ненужные повторные рендеры.
И`state`, и` props`, полученные функцией обновления, гарантированно будут обновлены. Результат функции поверхностно объединяется с `state`.
524
+
Как`state`, так и` props`, полученные функцией обновления, гарантированно будут обновлены. Результат функции поверхностно объединяется с `state`.
525
525
526
-
Второй параметр в `setState()` - дополнительная колбек-функция, которая выполняется после того, как исполнится `setState` и произойдет повторный рендер компонента. Мы рекомендуем использовать такой подход в `componentDidUpdate()`.
526
+
Второй параметр в `setState()` - дополнительный колбэк, который выполняется после того, как исполнится `setState` и произойдет повторный рендер компонента. Мы рекомендуем использовать такой подход в `componentDidUpdate()`.
527
527
528
528
В качестве первого аргумента `setState()`, вместо функции, вы можете передать объект:
0 commit comments