【问题标题】:How redirect a button in reactnative如何在本机反应中重定向按钮
【发布时间】:2021-04-22 01:41:48
【问题描述】:

您好,我尝试学习 react-native,我尝试做一个在“设置”处重定向的按钮:

import Home from './components/Home'
import Settings from './components/Settings'

import * as React from 'react';

import { Text,Button,Navigation, View } from 'react-native';
import { NavigationContainer } from '@react-navigation/native';
import { createBottomTabNavigator } from '@react-navigation/bottom-tabs';
import { useNavigation } from '@react-navigation/native';

const Tab = createBottomTabNavigator();

export default function App() {
  return (
    <NavigationContainer>
      <Tab.Navigator>
        
        <Tab.Screen name="Home" component={Home} />
      </Tab.Navigator>
      <Button

        title="Press me"
        color="#f194ff"
        onPress={() => navigation.navigate("Settings")}
      />
      
    </NavigationContainer>
    
  );
}

使用选项卡导航器,组件设置功能,但是当我尝试使用按钮“ReferenceError:导航未定义”时

我知道这是一个简单的问题,但我已经遇到了这个错误(我试图做“onPress={() => component={Home}} 但这也不起作用

谢谢!

【问题讨论】:

    标签: react-native


    【解决方案1】:

    您使用了import { useNavigation } from '@react-navigation/native';,但您没有使用它。 您可能应该添加:

    const navigation = useNavigation();
    

    这样你就可以做到:

     onPress={() => navigation.navigate("Settings")}
    

    【讨论】:

    • 我已经尝试过(我将 const 导航放在应用程序功能之上),它给了我错误:无效的挂钩调用。 Hooks 只能在函数组件体内部调用(我也不懂)
    【解决方案2】:

    您没有将{ navigation } 作为道具传递给App 试试这个:

    import Home from './components/Home'
    import Settings from './components/Settings'
    
    import * as React from 'react';
    
    import { Text,Button,Navigation, View } from 'react-native';
    import { NavigationContainer } from '@react-navigation/native';
    import { createBottomTabNavigator } from '@react-navigation/bottom-tabs';
    import { useNavigation } from '@react-navigation/native';
    
    
    const Tab = createBottomTabNavigator();
    
    
    
    export default function App({ navigation }) {
      return (
        <NavigationContainer>
          <Tab.Navigator>
            
            <Tab.Screen name="Home" component={Home} />
          </Tab.Navigator>
          <Button
    
            title="Press me"
            color="#f194ff"
            onPress={() => navigation.navigate("Settings")}
          />
          
        </NavigationContainer>
        
      );
    }
    

    【讨论】:

    • 这给了我“TypeError:无法读取未定义的属性'navigate'”:s
    • 使用上面的链接并尝试添加“export default withNavigation(Settings);”在 Settings.js 中
    猜你喜欢
    • 2021-08-16
    • 2022-12-12
    • 1970-01-01
    • 2018-11-11
    • 2019-04-21
    • 2018-08-17
    • 2019-06-21
    • 2022-08-16
    • 1970-01-01
    相关资源
    最近更新 更多