我目前有一个简单的react应用程序,无法获得这些onchange事件来激发我的生命。
var BlogForm = React.createClass({ getInitialState: function() { return { title: '', content: '' }; }, changeTitle: function(event) { var text = event.target.value; console.log(text); this.setState({ title: event.target.value }); }, changeContent: function(event) { this.setState({ content: event.target.value }); }, addBlog: function(ev) { console.log("hit hit"); }, render: function() { return ( <form onSubmit={this.addBlog(this)}> <div> <label htmlFor='picure'>Picture</label> <div><input type='file' id='picture' value={this.state.picture} /></div> </div> <div> <input className="form-control" type='text' id='content' value={this.state.title} onChange={this.changeTitle} placeholder='Title' /> </div> <div> <input className="form-control" type='text' id='content' value={this.state.content} onChange={this.changeContent} placeholder='Content' /> </div> <div> <button className="btn btn-default">Add Blog</button> </div> </form> ); } });
有趣的是,当我使用时onChange={this.changeTitle (this)},会触发事件,但changeTitle函数中的ev变量不正确。
onChange={this.changeTitle (this)}
changeTitle
尝试:
onChange={(evt) => this.changeTitle(evt)}
要么:
onChange={this.changeTitle.bind(this)}
代替:
onChange={this.changeTitle}