Javascript 在React Native中与此绑定 \n按按钮=(用户名)=>{ //警惕(“再见”) this.props.navigation.navigator('Loc'); } 登录用户=(用户名、密码)=>{ Parse.User.logIn(用户名、密码、{ 成功:(用户)=>{ //在成功登录后做一些事情。 // 点击此按钮(用户名); 警报(“你好”) }, 错误:(用户,错误)=>{ //登录失败。请检查错误以了解原因。 警报(“错误:+Error.code+”“+Error.message”); } }); } render(){ 让{username}=this.state.username; 返回( this.setState({username})} /> this.setState({password})} /> 这是。_onPressButton()} onPress={()=>this.loginuser(this.state.username,this.state.password)} 参考底色='#fff'> 登录 ); } } 导出默认项目=createStackNavigator({ 登录:{屏幕:登录}, Loc:{屏幕:Loc} });
更新 我可以使用箭头函数“=>”从函数loginuser(用户名、密码)调用_onPressButton(),但是这个.props.navigation.navigator('Loc')不起作用。 警报(“再见”)工作正常,但这个.props.navigation.navigator('Loc');不执行。可能是因为绑定了“this”。有人能帮我吗Javascript 在React Native中与此绑定 \n按按钮=(用户名)=>{ //警惕(“再见”) this.props.navigation.navigator('Loc'); } 登录用户=(用户名、密码)=>{ Parse.User.logIn(用户名、密码、{ 成功:(用户)=>{ //在成功登录后做一些事情。 // 点击此按钮(用户名); 警报(“你好”) }, 错误:(用户,错误)=>{ //登录失败。请检查错误以了解原因。 警报(“错误:+Error.code+”“+Error.message”); } }); } render(){ 让{username}=this.state.username; 返回( this.setState({username})} /> this.setState({password})} /> 这是。_onPressButton()} onPress={()=>this.loginuser(this.state.username,this.state.password)} 参考底色='#fff'> 登录 ); } } 导出默认项目=createStackNavigator({ 登录:{屏幕:登录}, Loc:{屏幕:Loc} });,javascript,reactjs,this,native,Javascript,Reactjs,This,Native,更新 我可以使用箭头函数“=>”从函数loginuser(用户名、密码)调用_onPressButton(),但是这个.props.navigation.navigator('Loc')不起作用。 警报(“再见”)工作正常,但这个.props.navigation.navigator('Loc');不执行。可能是因为绑定了“this”。有人能帮我吗 p.S“Loc”只是呈现当前位置并打印它的另一个类。您可以对类方法和success/error回调使用箭头函数,以获取所包含执行上下文的此值。由于不
p.S“Loc”只是呈现当前位置并打印它的另一个类。您可以对类方法和
success
/error
回调使用箭头函数,以获取所包含执行上下文的此值。由于不使用await
,因此也可以跳过async
关键字
_onPressButton =(username) =>{
// alert("bye")
this.props.navigation.navigator('Loc');
}
loginuser = (username, password) =>{
Parse.User.logIn(username, password, {
success: (user) => {
// Do stuff after successful login.
//
this._onPressButton(username);
alert("hello")
},
error: (user, error) => {
// The login failed. Check error to see why.
alert("Error: " + error.code + " " + error.message);
}
});
}
render(){
let { username } = this.state.username;
return(
<View style= {styles.container}>
<TextField
inputContainerStyle={{ justifyContent: 'center', marginTop:30,marginLeft:50, marginRight:50, }}
inputStyle={{textAlign: 'center',justifyContent: 'center', backgroundColor: 'rgba(255,255,255,0.5)'}}
titleTextStyle={{ textAlign: 'center',justifyContent: 'center', }}
label='Username'
value={this.state.username}
onChangeText={ (username) => this.setState({ username}) }
/>
<TextField
inputContainerStyle={{ justifyContent: 'center', marginTop:0,marginLeft:50, marginRight:50, }}
inputStyle={{textAlign: 'center',justifyContent: 'center', backgroundColor: 'rgba(255,255,255,0.5)'}}
titleTextStyle={{ textAlign: 'center',justifyContent: 'center', }}
label='Password'
secureTextEntry={true}
value={this.state.password}
onChangeText={ (password) => this.setState({ password}) }
/>
<View>
<TouchableOpacity
style={styles.loginScreenButton}
// onPress={() => this._onPressButton()}
onPress={() => this.loginuser(this.state.username, this.state.password)}
underlayColor='#fff'>
<Text
style={styles.loginText}> Login </Text>
</TouchableOpacity>
</View>
</View>
);
}
}
export default Project = createStackNavigator({
Login: { screen: Login },
Loc: { screen: Loc}
});
我做了这些更改,但没有做这些更改;我想使用这个.props.navigation.navigator('Loc')“它在成功的内部没有任何作用option@sap好吧,那太令人沮丧了。您能在问题中包括您的整个组件和父组件吗?否则很难说是怎么回事。给您带来的不便,我深表歉意。我现在已经更新了代码@sap是否成功运行?试着在那里放一个控制台。log
或其他东西。是的,成功运行得很好,甚至在你建议使用箭头函数后,onPress也被调用了。(onpress()中的警报有效,但导航无效)。在该函数中使用“this”是否有问题?能否显示对loginuser函数的调用是使用=>
还是作为回调?onPress={()=>this.loginuser(this.state.username,this.state.password)}
loginuser = (username, password) => {
Parse.User.logIn(username, password, {
success: (user) => {
// Do stuff after successful login.
this._secondFunction();
},
error: (user, error) => {
// The login failed. Check error to see why.
alert("Error: " + error.code + " " + error.message);
}
});
};