【问题标题】:How to make a route in react native?如何在本机反应中制作路线?
【发布时间】:2019-09-23 18:57:31
【问题描述】:

路由器不工作,我尝试了很多形式但都不工作,有人可以帮助我吗?

以下错误是:Device: (487:41) undefined is not an object (evalating '_this2.props.navigation.navigate')

import { createDrawerNavigator, createAppContainer } from "react-navigation";
import Noturno from './containerNoturno.js';
import Linhas from './Linhas.js';
import LSaida from './LinhasSaida.js';
import Main from './containerDiurno.js';
import Ajuda from './Ajuda.js';
import Sobre from './sobre.js';
import Intro from './intro.js';
import GalopolisSantaCoronaNoturno from './Noturno/GalopolisSantaCorona.js';

const AppNavigator = createDrawerNavigator({
Menu: { screen: Main },
Noturno: { screen: Noturno },
Linhas: { screen: Linhas },
Linhas_Saida: { screen: LSaida },
Ajuda: { screen: Ajuda },
Sobre: { screen: Sobre },
Galopolis_Noturno: { screen: GalopolisSantaCoronaNoturno },
});
export default createAppContainer(AppNavigator);

这是另一个代码:

  <TouchableOpacity
      onPress={() => this.props.navigation.navigate('Noturno')}
      style={styles.fab}>
      <Image
        source={require('../assets/noite.png')}
        style={{ width: 50, height: 50 }}
      />
    </TouchableOpacity>

请打开以下链接并帮助我...

【问题讨论】:

  • 你能告诉我这个错误发生在哪个文件中吗?当你按下某个东西来触发 this.props.navigation.navigate 时,你当前所处的屏幕是什么?
  • 我在 Diurno.js 屏幕中,并尝试使用以下命令进入 Noturno.js 屏幕:onPress={() => this.props.navigation.navigate('Noturno ')},但它不起作用.. :/
  • 你的路由器在哪里?
  • 在 Menu.js 屏幕中
  • 我觉得应该是 createDrawerNavigator 而不是 DrawerNavigator

标签: react-native react-router url-routing screen


【解决方案1】:

您正在访问不属于 StackNavigator 的子组件“Noturno.js”中的导航道具

您可以像这样访问道具 (Access the navigation prop from any component)

更新文件“Noturno.js”

import { withNavigation } from 'react-navigation';

....

class App extends React.Component

....


export default withNavigation(App);


【讨论】:

  • 嗨,我如何从主组件访问道具(组件)?有远方吗?
猜你喜欢
  • 2022-12-20
  • 2020-01-18
  • 2021-05-11
  • 1970-01-01
  • 2020-03-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-09-28
相关资源
最近更新 更多