#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