首页 文章

getElementById本地反应

提问于
浏览
1

你如何获得本地反应中的元素?

我的用例是登录屏幕 . 按下提交按钮,现在我想获取用户名和密码TextInputs的值 .

export default class Login extends Component 
      {
        login()
        {
          //document.getElementById('username'); //run-time error
        }
        render() 
        {
          return (

            <View style={{flex: 1,flexDirection: 'column',justifyContent: 'space-between',margin:10}}>
              <View style={{backgroundColor: 'powderblue'}} />
              <MyTextField id='user' placeholder="User Name" />
              <MyTextField id='pass' placeholder="Password" />
              <MyButton onPress={this.login} title='Login'/>
            </View>

          );
        }
      }

1 回答

  • 4

    你没有得到反应原生的getElementById,你必须使用状态 . 你可以这样做:

    export default class Login extends Component {
    
          constructor (props) {
              super(props);
              this.state={
                  email:'',
                  password:''
              }
              this.login = this.login.bind(this); // you need this to be able to access state from login
          }
    
          login() {
              console.log('your email is', this.state.email);
              console.log('your password is', this.state.password);
          }
    
          render() {
              return (
                <View style={{flex: 1,flexDirection: 'column',justifyContent: 'space-between',margin:10}}>
                  <View style={{backgroundColor: 'powderblue'}} />
                  <TextInput onChangeText={(email) => {
                this.setState({email})/>
                     <TextInput secureTextEntry={true} onChangeText={(password) => {
                this.setState({password})/>
                  <MyButton onPress={this.login} title='Login'/>
                </View>
              );
            }
          }
    

相关问题