#android #react-native #view #measure
Вопрос:
У меня есть <View>
проблема. Теперь я хотел бы сделать ссылку на представление и получить позицию Y в другом месте вместо использования onLayout
атрибута. Возможно ли это?
Вот что я попробовал:
let viewRef = useRef(null);
function myEvent() {
if( viewRef ) {
viewRef.measure((x, y, width, height, pageX, pageY) => {
console.log(x, y, width, height, pageX, pageY);
});
}
}
<View ref={viewRef}></View>
Однако ссылка на просмотр остается null
. Идея?
Комментарии:
1. Просто чтобы быть уверенным, <Представление> в конце с ссылкой-это все, что вы возвращаете в компоненте? Также обратите внимание, что обычно вам придется получать данные ссылки с помощью «viewRef.current», а не напрямую из viewRef
2. @Шай, вернулось много данных, но я не хотел заполнять вопрос всем своим файлом. Это что-нибудь изменит? Я только хочу сделать ссылку на а
<View>
и не преуспел на первом этапе.3. Я спрашиваю, потому что на бумаге ссылка, которую вы показали, должна работать, но если в представлении ссылка находится, например, внутри другого компонента, вам понадобится прямая ссылка для ее работы, также обратите внимание, что ссылка не создана с компонентом, поэтому при первом отображении она всегда будет равна нулю, знайте, имеет ли это значение для вашей проблемы
4. Ах, я вижу, это действительно важно! Спасибо. Мне нужна ссылка немедленно, иначе это не имело бы значения. Спасибо
5. Вы можете сделать это с помощью useEffect и в его зависимости следовать ссылке и проверять, существует ли она, но сначала рендеринг будет нулевым