Как Animated.Component/createAnimatedComponent (Component) отличается от Component?
Мы пытаемся выяснить причину следующей проблемы из проекта стилизованных компонентов: https://github.com/styled-components/styled-components/issues/389
Были внесены некоторые изменения в refs + setNativeProps, которые разбивали анимацию в одном месте, предположительно потому, что некоторая анимированная связанная информация не передается правильно.
Следовательно, возникает вопрос, как createAnimatedComponent
изменяет исходный компонент, что добавлено? Что может заставить анимацию сломаться, если ее не передать правильно?
Просьба представить идеи/подробный ответ, если вы знаете, что может вызвать эту проблему.
UPDATE
Нарушение изменения, связанное с проблемой, произошло где-то в этом файле для справки innerRef
, пропустит ref
, isTag
функция проверяет, является ли он родным компонентом.
Ответы
Ответ 1
анимационные компоненты могут быть анимированы. View, Text и Image уже предоставлены, и вы можете создавать собственные с помощью createAnimatedComponent. Эти специальные компоненты делают магию привязки анимированных значений к свойствам и делают целевые собственные обновления, чтобы избежать затрат на реакцию рендеринга и процесс согласования на каждом фрейме. Они также обрабатывают очистку при отключении, поэтому по умолчанию они безопасны.
https://facebook.github.io/react-native/docs/animated.html