Reactjs 在函数调用中作出反应

Reactjs 在函数调用中作出反应,reactjs,react-native,react-navigation,Reactjs,React Native,React Navigation,我是react-native新手,似乎只能在react-native的return()方法中找到如何在屏幕之间导航的文档。我想知道函数调用中导航的语法是什么。我遇到问题的行是第37行(在登录函数中) import React,{Component}来自'React'; 进口{ 看法 文本, 触控高光, 可触摸不透明度, 文本输入框 }从“反应本机”; 从“./Input”导入输入; 从“反应本机矢量图标/唯物主义者”导入图标; 从“/App”导入{firebaseApp}; 从“./Router

我是react-native新手,似乎只能在react-native的return()方法中找到如何在屏幕之间导航的文档。我想知道函数调用中导航的语法是什么。我遇到问题的行是第37行(在登录函数中)

import React,{Component}来自'React';
进口{
看法
文本,
触控高光,
可触摸不透明度,
文本输入框
}从“反应本机”;
从“./Input”导入输入;
从“反应本机矢量图标/唯物主义者”导入图标;
从“/App”导入{firebaseApp};
从“./Router”导入{Tabs};
导出默认类LoginScreen扩展组件{
建造师(道具){
超级(道具)
此.state={
电子邮件:“”,
密码:“”,
状态:“”
}
this.login=this.login.bind(this);
}
登录(){
console.log(“登录”);
firebaseApp.auth().signInWithEmailAndPassword(this.state.email,this.state.password)。catch(函数(错误){
console.log(错误代码);
console.log(错误消息);
})
this.props.navigation.navigate('TabNav');
console.log(“导航到主页”);
}
render(){
变量样式=要求('./样式');
const{navigate}=this.props.navigation;
返回(
普林斯顿事件
this.setState({email:text})
值={this.state.email}
returnKeyType='next'/>
this.setState({password:text})}
值={this.state.password}
自动资本化=“无”
returnKeyType='go'/>
登录
导航('CreateAccount')}>
创建帐户
);
}
}
这是Router.js

从“React”导入React;
从“react navigation”导入{StackNavigator,TabNavigator};
从“./InputPage”导入InputScreen;
从“./Home”导入主屏幕;
从“/Details”导入DetailsScreen;
从“/MyEvents”导入MyEventsScreen;
从“/EditPage”导入EditScreen;
从“/Map”导入MapScreen;
从“/CreateAccount”导入CreateAccountScreen;
从“/Login”导入登录筛选;
export const myeventstack=StackNavigator({
MyEvents:{
屏幕:MyEventsScreen,
导航选项:{
标题:空
}
},
MyEvents详细信息:{
屏幕:编辑屏幕,
导航选项:{
标题:null,
},
},
});
导出常量EventsStack=StackNavigator({
主页:{
屏幕:主屏幕,
导航选项:{
标题:null,
},
},
详情:{
屏幕:详细信息屏幕,
导航选项:{
标题:null,
},
},
});
导出常量选项卡=选项卡导航器({
主页:{screen:EventsStack},
事件映射:{screen:MapScreen},
输入:{screen:InputScreen},
MyEvents:{screen:MyEventsStack},
},{
选项卡选项:{
activeTintColors:“#e91e63”,
}
});
export const LoginNav=StackNavigator({
登录:{屏幕:登录屏幕,
导航选项:{
标题:null,
},
},
CreateAccount:{screen:CreateAccountScreen,
导航选项:{
标题:null,
}
},
});
/*export const SuccessLoginNav=StackNavigator({
主:{屏幕:选项卡,
导航选项:{
标题:null,
}
},
});*/
export const Root=StackNavigator({
选项卡导航:{
屏幕:选项卡,
}
},{headerMode:'none'});

登录
中,您正在声明一个函数,但既没有调用它,也没有将它分配给任何对象:

() => this.props.navigation.navigate('Home');
从本质上说,这条线没有任何作用。尝试删除匿名函数声明:

this.props.navigation.navigate('Home');

login
中,您声明了一个函数,但既没有调用它,也没有将它分配给任何对象:

() => this.props.navigation.navigate('Home');
从本质上说,这条线没有任何作用。尝试删除匿名函数声明:

this.props.navigation.navigate('Home');

非常感谢你!我删除了匿名函数声明。这是一个问题,但它仍然不能像应该的那样导航。我在原始问题中添加了router.js。我的堆栈导航器有问题吗?你使用的是什么版本的React路由器?我被这个问题弄糊涂了。我使用的是react native 0.44,我使用的是react navigationReact Router()是一个特定的软件包…3.x和4.x之间有很多突破性的变化,但很多人仍然使用3.x,这就是为什么我问如果你在
包.json
文件中看到
“react Router”
,你使用的是react Router,您将在那里看到版本号。非常感谢!我删除了匿名函数声明。这是一个问题,但它仍然不能像应该的那样导航。我在原始问题中添加了router.js。我的堆栈导航器有问题吗?你使用的是什么版本的React路由器?我被这个问题弄糊涂了。我使用的是react native 0.44,我使用的是react navigationReact Router()是一个特定的软件包…3.x和4.x之间有很多突破性的变化,但很多人仍然使用3.x,这就是为什么我问如果你在
包.json
文件中看到
“react Router”
,你使用的是react Router,您将在那里看到版本号。