2016-08-21 1 views
1

子プロップから親にデータをプッシュする方法がより短く、よりクリーンな方法はありますか?子プロップデータを親にプッシュする方法を短くする

var Parent = React.createClass({ 

    _result: function(data){ 
    console.log(data); 
    }, 

    render: function(){ 
    return(<Child bar={this._result} />) 
    } 

}); 

var Child = React.createClass({ 

    _foo: function(e){ 
    this.props.bar(e.target.value); 
    }, 

    render: function(){ 
    return(
     <div> 
     <input type="text" onChange={this._foo} /> 
     </div> 
    ) 
    } 

}); 

onChange_foo()機能を持たずに単純化することができますか?入力の値を親関数_result()にプッシュするだけです。

答えて

1

あなたは_foo機能を取り除き、そしてちょうどonChangeに渡された機能を割り当てることができます。 onChangeは引数としてeventを渡すので、_result関数を少し調整する必要があります。ここに例があります:

var Parent = React.createClass({ 

    _result: function(e) { 
    console.log(e.target.value); 
    }, 

    render: function() { 
    return(<Child bar={this._result} />) 
    } 

}); 

var Child = React.createClass({ 

    render: function() { 
    return(
     <div> 
     <input type="text" onChange={this.props.bar} 
     </div> 
    ) 
    } 

}); 
+0

それは私が両方の答えを見る前に私が持っているものなので、私は答えとしてあなたのものを作っていきます。 – Sylar

1

このため、一部省略表現があります:

render: function(){ 
    return(
     <div> 
     <input type="text" onChange={e => this.props.bar(e.target.value)} 
     </div> 
    ) 
    } 
+0

これは短くなりますが、同じではありません。これにより、すべての単一のレンダーに新しい機能が作成されます。 – tobiasandersen

関連する問題