React中的输入字段不变(受控输入)

时间:2017-01-05 03:53:03

标签: javascript reactjs

没有绑定。(this)on this.updateEmail.bind(this)输入字段值发生了变化,但是我收到错误的说法不能设置undefind的this.setState。所以我添加.bind(这个)但它根本不起作用..有点困惑

import React, { Component } from 'react';
import Request from 'superagent';

class App extends Component {
  constructor(){
    super()
      this.state = {
        email: 'asdf',
        password: ''      
    }
  }
  updateEmail(e){
    this.setState={
      email: e.target.value
    }
  }
  createUser(e){
    var query = 'star';
    e.preventDefault()
    console.log(this.state.email)
    var url = `http://www.omdbapi.com?s=${query}&y=&r=json&plot=short`;
    Request.get(url).then((response) => {
      console.log(response)
      this.setState({
        movies: response.body.Search,
        total: response.body.totalResults
      });
    });
  }
  render() {
    return (
      <div className="App">
        <div className="App-header">
          <form onSubmit={this.createUser.bind(this)}>
            <input type="text"
             name="email"
             onChange={this.updateEmail.bind(this)} 
             value={this.state.email}
             placeholder="email"/>
             <br/>
            <input type="text"
             name="password" 
             value={this.state.password}
             onChange={this.updatePassword}
             placeholder="password"/>
             <br/>
            <input type="submit" value="submit"/>
          </form>
        </div>
      </div>
    );
  }
}

export default App;

1 个答案:

答案 0 :(得分:0)

setState是一个函数,你应该这样调用它:

this.setState({ foo: 'bar' });
相关问题