Выбор ответа Middle Анимации и жесты спрашивают часто обновлено

Reanimated: shared value

Вопрос

Что произойдёт с компонентом, если изменить offset.value у shared value из Reanimated?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Пересчитаются зависимые анимированные стили на UI-потоке, без рендера React. Shared value живёт и в JS, и на UI-потоке. useAnimatedStyle подписан на него и пересчитывает стиль прямо на UI-потоке, минуя React.

Варианты ответа

  1. Компонент перерисуется, как при вызове setState с новым значением offset
  2. Ничего не произойдёт, пока не вызвать forceUpdate у компонента
  3. Изменение применится только после следующего рендера компонента
  4. Пересчитаются зависимые анимированные стили на UI-потоке, без рендера Reactправильный ответ

Разбор

Shared value живёт и в JS, и на UI-потоке. useAnimatedStyle подписан на него и пересчитывает стиль прямо на UI-потоке, минуя React. Поэтому анимации не зависят от рендеров. Если значение нужно показать в обычном тексте, его переносят в состояние React через useAnimatedReaction и runOnJS.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.