Как получить положение Y элемента по ссылке?

#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 и в его зависимости следовать ссылке и проверять, существует ли она, но сначала рендеринг будет нулевым