Выбор ответа Middle Анимации и жесты спрашивают часто обновлено
Reanimated: shared value
Вопрос
Что произойдёт с компонентом, если изменить offset.value у shared value из Reanimated?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Пересчитаются зависимые анимированные стили на UI-потоке, без рендера React. Shared value живёт и в JS, и на UI-потоке. useAnimatedStyle подписан на него и пересчитывает стиль прямо на UI-потоке, минуя React.
Варианты ответа
- Компонент перерисуется, как при вызове
setStateс новым значением offset - Ничего не произойдёт, пока не вызвать
forceUpdateу компонента - Изменение применится только после следующего рендера компонента
- Пересчитаются зависимые анимированные стили на UI-потоке, без рендера Reactправильный ответ
Разбор
Shared value живёт и в JS, и на UI-потоке. useAnimatedStyle подписан на него и пересчитывает стиль прямо на UI-потоке, минуя React. Поэтому анимации не зависят от рендеров. Если значение нужно показать в обычном тексте, его переносят в состояние React через useAnimatedReaction и runOnJS.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.