react-native - 如何调用反应本机函数以从另一个类进行导航
问题描述
我是反应原生的新手。我使用 Wix react-native-navigation 库在页面之间导航。我想像下面这样为导航编写一个单独的类,并在我的项目中需要它的任何地方调用它。但我收到“this.props.componentId”的错误。这是我的导航功能:
屏幕导航.js
import React,{Component} from 'react';
import {Navigation} from "react-native-navigation";
class ScreenNavigation extends Component{
constructor(props){
super(props)
}
goToScreen = (screenName) =>{
Navigation.push(this.props.componentId , {
component : {
name : screenName
}
});
}
}
const NextPage = new ScreenNavigation();
export default NextPage;
这是我的登录页面(我想在其中调用该函数):
登录.js
import React, {Component} from 'react';
import {View, Button, Text} from 'react-native';
import NextPage from "../../my_classes/ScreenNavigation"
export default class Login extends Component {
render() {
return (
<View>
<Text>Anna</Text>
<Button title={"Enter"} onPress=
{()=>NextPage.goToScreen('myRegister')}> </Button>
</View>
);
}
}
请帮我解决我的问题。
这是我的 index.js 文件:
import {Navigation} from 'react-native-navigation';
import Login from './my_screens/login®ister/Login';
Navigation.registerComponent('myLogin',()=>Login);
Navigation.events().registerAppLaunchedListener(()=>{
Navigation.setRoot({
root : {
stack : {
id:'AppStack',
children : [
{
component : {
name : 'myLogin' ,
options : {
topBar : {
title : {
text : 'Login'
}
}
}
},
}
]
}
}
}
)
});
解决方案
请先看官方文档。根据文档,您必须先注册组件屏幕。否则,您无法导航到该屏幕。其次,您没有传递任何道具。所以它实际上是未定义的。
推荐阅读
- c# - 需要在数据库中的数据类型为“Int”的情况下获得自动增量
- samba - 安装 samba 的 Ubuntu 18.04 包出现以下错误
- node.js - 隐藏节点红色的流
- deep-learning - 如何在深度学习中获得分类器对测试数据的准确性
- php - 邮件函数总是调用 else 部分
- java - Api返回base64图像字符串作为直接响应而不是json响应如何在androidStudio中处理
- php - ajax调用后VueJS更新数据
- stackexchange.redis - 使用 StackExchange.Redis 进行线程安全发布
- node.js - 如何在nodejs中的where子句中使用and运算符和sequelize
- azure-sql-database - 将一些表从 Azure SQL 导出到 Cosmos DB 以进行 PowerBI 可视化