首页 > 解决方案 > null 不是对象:(评估 this.state.email)

问题描述

我正在创建登录表单。但是有一些关于这个问题的问题。这就是我迄今为止所做的。

loginUser = async(email, password) => {
    if(email != '' && password != ''){
      try {
        let user = await auth.signInWithEmailAndPassword(email,password);
        console.log(user);
      } catch (error) {
        console.log(error);
      }
    } else {
      alert("some error")
    }
  }

在渲染内部:

render(){
    return(
      <View>
        <Text>Email</Text>
        <TextInput
          onChangeText={(text) => this.setState({email: text})}
          value={this.state.email}
        />
        <Text>Password</Text>
        <TextInput
          onChangeText={(text) => this.setState({password: text})}
          value={this.state.password}
          secureTextEntry={true}
        />
        <TouchableHighlight style={{backgroundColor: "green"}}
          onPress={() => this.loginUser(this.state.email, this.state.password)}>
          <Text>Login!</Text>
        </TouchableHighlight>

        <TouchableHighlight style={{backgroundColor: "green"}}
          onPress={()=> this.loginWithFacebook()}>
          <Text>Login with Facebook!</Text>
        </TouchableHighlight>
      </View>
    );
  }
}

我在这里做错了什么?因为 loginUser 功能无法正常工作...谢谢您的帮助!

标签: react-nativeecmascript-6

解决方案


在您的班级声明后添加此代码:

state = {
  email: '',
  password: '',
}

代码失败是因为您试图获取不存在的 obj 密钥。您需要先创建它。


推荐阅读