は、私は、次のコンポーネントのコードを持っている:私はcomponentWillMount
に新しい状態を取得する方法なぜこの状況でcomponentWillReceivePropsが必要なのですか?
var Answer = React.createClass({
getInitialState: function(){
return { comments: []}
},
componentWillMount: function(){
$.ajax({
context: this,
method: 'GET',
url: '/answers/' + this.props.answer.id + '/comments',
success: function(data){
this.setState({comments: data});
}
});
},
render: function(){
return (
<div>
<Comments comments={this.state.comments} />
</div>
);
},
お知らせし、その後、Comments
コンポーネントに小道具としてこの新しい状態を渡します。私は私のComments
コンポーネントをリフレッシュするの世話をして、新しい小道具を通過するI componentWillMount
でsetState
が、しかし、それは私が私のComments
コンポーネントでは、この方法が必要に判明したときにすることを期待していた:
componentWillReceiveProps: function(newProps){
this.setState({comments: newProps.comments})
},
誰かが説明していただけます私の親コンポーネントが、私が父親の状態を設定した後、子に渡されている小道具を更新しないのはなぜですか?
* "しかし、私のコメントモジュールではこのメソッドが必要です" *ここではそうであるような状態で小道具を保管する場合にのみこれを行う必要があります。あなたがしていると思われるhttps://facebook.github.io/react/tips/props-in-getInitialState-as-anti-pattern.htmlを参照してください。 –
@FelixKlingはい、あなたは正しいです、私は状態で小道具を保管しています、私はしないようにしますか? –
はい、する必要はありません。リンクを参照してください:) –