小编典典

反应输入onChange不会触发

reactjs

我目前有一个简单的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变量不正确。


阅读 346

收藏
2020-07-22

共1个答案

小编典典

尝试:

onChange={(evt) => this.changeTitle(evt)}

要么:

onChange={this.changeTitle.bind(this)}

代替:

onChange={this.changeTitle}
2020-07-22