React Native — сфокусируйте осязаемый эффект использования, работающий в Интернете, но не на Android

#android #reactjs #react-native #use-effect #touchableopacity

Вопрос:

Я пытаюсь получить осязаемую прозрачность, чтобы сфокусироваться после рендеринга. Я попытался использовать ссылки и вызвать фокус из useEffect. Он работает в веб — браузере, но не на устройстве Android-фокус никогда не вызывается.

 import React, { useRef, useEffect, useState } from 'react';
import {Text,TouchableOpacity,View} from 'react-native';

export default function App() {
  const [focused, setFocused] = useState(0);
  const touchableRef = useRef();

  useEffect(() => {
    touchableRef.current?.focus();
  }, []);

  const setFocusedElement = () => {
    setFocused(1);
  };

  return (
    <View>
      <TouchableOpacity ref={touchableRef} onFocus={() => setFocusedElement()}>
        <Text>Hello, I should be focused. {focused}</Text>
      </TouchableOpacity>
    </View>
  );
}
 

Вот закуска, показывающая проблему. Вы можете видеть, что он фокусируется на Интернете, но не на устройстве Android. https://snack.expo.dev/@jerrybels/frisky-waffle