一般的に、この2つの違いは、に何回このリクエストをしたいのですか。あなたが要求コンポーネントが搭載されている初回のみ起こるようにしたい場合は、要求がすべてのレンダリング(落胆)で発生する場合
、あなたはその後、render
メソッドを使用し、ComponentWillMount
(望ましい)
を使用します。 。各要求は、再レンダリングが発生しますsetState
を呼び出す要求を行いますどの再レンダリングする原因になりますsetState
を呼び出すためrender
方法でそれを入れて、あなたの場合は
は、実際に無限再帰を引き起こします。..
非常に多くの頻繁な要求から、パフォーマンス上のコストとネットワークの輻輳はもちろんですが、
class Example extends React.Component {
constructor() {
super()
this.state = {
counter: 0
}
}
render() {
// fake async action to act as a request
setTimeout(() => {
const { counter } = this.state;
this.setState({
counter: counter + 1
})
}, 500)
return React.createElement('h3', null, this.state.counter)
}
}
ReactDOM.render(
React.createElement(Example),
document.querySelector('#example')
)
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react-dom.js"></script>
<h2>Re-rendering forever</h2>
<div id="example"></div>
まあ、中にレンダリングしますが、要求あなたが再レンダリングするたびに提出されると思い、プラスレンダリングにあなたは状態を設定することはありません、または非同期機能のコールバックインチ – Li357