Я хочу сосредоточиться на вводе текста при переходе на новый экран. Это работает, когда я добавляю экран в стек, но не когда я go возвращаюсь в стек.
Вместо этого ввод фокусируется на секунду и сразу размывается.
Вот что Я получаю:
- Экран A находится первым в стеке, и ввод сразу размывается
- Экран B добавляется в стек и работает как положено
![enter image description here](https://i.stack.imgur.com/LPHRp.gif)
Любая идея, что вызывает это?
К вашему сведению, у меня та же проблема, если я использую автофокус.
Вот все ( довольно просто) код:
import { NavigationContainer } from "@react-navigation/native";
import { createStackNavigator } from "@react-navigation/stack";
import * as React from "react";
import { TextInput, View, Button, Text } from "react-native";
function ScreenA({ navigation }) {
const textInputRef = React.useRef();
const focusOnInput = e => {
textInputRef.current.focus();
};
navigation.addListener("focus", focusOnInput);
return (
<View>
<Text>SCREEN A</Text>
<TextInput ref={textInputRef} />
<Button title="Go to screen B" onPress={() => navigation.navigate("ScreenB")} />
</View>
);
}
function ScreenB({ navigation }) {
const textInputRef = React.useRef();
const focusOnInput = e => {
textInputRef.current.focus();
};
navigation.addListener("focus", focusOnInput);
return (
<View>
<Text>SCREEN B</Text>
<TextInput ref={textInputRef} />
<Button title="Go to screen A" onPress={() => navigation.navigate("ScreenA")} />
</View>
);
}
const Stack = createStackNavigator();
function TestComp() {
return (
<NavigationContainer>
<Stack.Navigator>
<Stack.Screen component={ScreenA} name="ScreenA" />
<Stack.Screen component={ScreenB} name="ScreenB" />
</Stack.Navigator>
</NavigationContainer>
);
}
export default TestComp;