14

私は現在、この単純な反応アプリを持っていますが、これらの 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)}と、イベントが発生しますが、関数内の ev 変数がchangeTitle正しくありません。

4

4 に答える 4

24

試す:

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

また:

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

それ以外の:

onChange={this.changeTitle}
于 2016-01-31T16:11:56.630 に答える