React Native:导航推送后,首先焦点文本输入闪出键盘

Jea*_*ert 8 javascript android react-native

在我真正的 Android 设备上,将TextInput屏幕推入堆栈导航后聚焦会使键盘闪烁一次(出现然后立即消失)。这不会在重新聚焦时发生,但如果我向后导航并使用任何包含 TextInputs 的屏幕重新推送导航,则会再次发生。

这不会发生:

  • 在安卓模拟器中
  • 如果我使用 navigation.navigate('...')

一世

下面这些代码与我的设备上运行的完全相同,只是简单的代码,没有什么花哨的东西。

应用程序.js

import * as React from 'react';
import { NavigationContainer } from '@react-navigation/native';
import { createStackNavigator } from '@react-navigation/stack';

import CategoryScreen from './screens/Category';

const MyStack = createStackNavigator();

export default function App() {
  return (
    <NavigationContainer>
      <MyStack.Navigator>
        <MyStack.Screen name="Category" component={CategoryScreen} />
      </MyStack.Navigator>
    </NavigationContainer>
  );
}
Run Code Online (Sandbox Code Playgroud)

分类.js

import React from 'react';
import { View, TextInput, Button } from 'react-native';

export default function Category({ navigation }) {
  function goToAnotherCategory() {
    navigation.push('Category');
  }

  return (
    <View>
      <Button onPress={goToAnotherCategory} title="Go to Another Category" />
      <TextInput style={{ margin: 10, borderWidth: 1, backgroundColor: 'white' }} />
    </View>
  )
}
Run Code Online (Sandbox Code Playgroud)

我正在使用这些版本:

"dependencies": {
  ...
  "@react-navigation/native": "^5.5.1",
  "@react-navigation/stack": "^5.5.1",
  "react": "16.11.0",
  "react-native": "0.62.2"
  ...
}
Run Code Online (Sandbox Code Playgroud)

Jea*_*ert 1

更新到最新:

  • npm install @react-navigation/native(目前已更新至v5.7.3)
  • npm install @react-navigation/stack(目前已更新至v5.9.0)

我不确定哪一个可以解决这个问题。我两者都做了,现在可以正常工作了。