私はこの反応のケースを持っているかもしれませんが、おそらく反応することから何かが逃しているかもしれません。componentDidMount
か、あるいは奇妙な挙動です(正しいことはjQueryプラグインで実際のフィドルを提供することはできませんが、プラグ自体よりも広い)。なぜ、componentDidUpdateに新しく挿入されたdomノードが表示されないのですか?
var Hello = React.createClass({
getInitialState() {
return {content: '<div id="target">ciao!</div>'}
},
componentDidMount() {
const target = $('#target').init();
this.target = target;
},
componentWillReceiveProps(nextProps) {
if (condition) {
this.target.destroy(); // this remove even the DOM node
}
},
componentDidUpdate() {
const target = $('#target').init(); // HERE PROBLEM! can't find the #target element
this.target = target;
}
render: function() {
return <div>Hello {this.state.content}</div>;
}
});
'condition'がtrueで、DOMノードがcomponentDidUpdate
が見つからない、プラグインによって破壊された後、私は理由を理解することはできません#target
私の心にされている必要があることを「再描画」最初のレンダリングではcomponentWillReceiveProps
の後です。私はそこにいることを期待しています。なぜなら、決して変化しない初期の状態からそれを読むからです。
私には何が欠けていますか?
適切な名前の['dangerouslySetInnerHtml'](https://facebook.github.io/react/docs/dom-elements.html#dangerouslysetinnerhtml)を使用せずに、そのままのHTMLをレンダリングすることはできません。 –
@JoeClayはそうではありません。とにかく私は試して何も変更していません.. – ciaoben