のデータを動的に変更できるようにsetProps
、外部から呼び出したい。コンポーネントの小道具を変更した後、それ自体が再レンダリングされることを期待しています。myComponent
myComponent
私は次のことを試みていました:
var myComponent = React.createClass({
render: function () {
return (
React.DOM.div(null, this.props.data)
);
}
});
React.renderComponent(
myComponent({ data: someData }),
document.getElementById('predictionContent')
);
myComponent.setProps({data: someData2});
問題はsetProps
、コンポーネントの使用方法がわからないことです。私の場合、「未定義」エラーが発生します。
これを解決する方法は?
警告: setProps
されて廃止。
React.createClass
クラスReact.renderComponent
を返しますsetProps
。これは、メソッドを持つクラスのインスタンスを返します。
代わりにこれを試してください:
var MyComponent = React.createClass({
render: function () {
return React.DOM.div(null, this.props.data);
}
});
var myComponent = React.renderComponent(
new MyComponent({ data: someData }),
document.getElementById('predictionContent')
);
myComponent.setProps({ data: someData2 });
そうは言っても、Chad Sciraの答えも正しいです。おそらく、setPropsを呼び出すよりも再レンダリングする方が良いでしょう。これにより、render()メソッド内のコードと同じように見えrenderComponent
、初回または後続の更新に関係なく、いつでもを呼び出すことができます。
このような:
var MyComponent = React.createClass({
render: function () {
return React.DOM.div(null, this.props.data);
}
});
React.renderComponent(
new MyComponent({ data: someData }),
document.getElementById('predictionContent')
);
// later
React.renderComponent(
new MyComponent({ data: someData2 }),
document.getElementById('predictionContent')
);
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加