Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
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 - Fatal编程技术网

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 在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回调使用箭头函数,以获取所包含执行上下文的此值。由于不

更新

我可以使用箭头函数“=>”从函数loginuser(用户名、密码)调用_onPressButton(),但是这个.props.navigation.navigator('Loc')不起作用。 警报(“再见”)工作正常,但这个.props.navigation.navigator('Loc');不执行。可能是因为绑定了“this”。有人能帮我吗


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);
    }
  });
};