前提・実現したいこと・疑問
①なぜ2回renderされてしまうのかの理由が知りたい
②1回のrenderで済ませることは可能でしょうか?(それで動作を軽くなる?)
③renderされる数はそこまで気にする必要はないでしょうか?
以下の仮設の項目の参考記事(海外記事)を参照したのですが、知識量が足りないのか、理解に苦しんでいます。
発生している問題
■初期ロード時 console.logでrender数を確認すると、2回renderされてしまっている。 ■countボタンを押すたび 2回renderされている。
該当のソースコード
react
1 2import React from 'react'; 3import {Component} from 'react'; 4 5 6const App = () => (<Counter></Counter>) 7 8class Counter extends Component { 9 constructor(props){ 10 super(props) 11 this.state = {count: 0} 12 } 13 14// プラスボタン 15 handlePlusButton =() => { 16 this.setState( { count: this.state.count+1}); 17 } 18 19// マイナスボタン 20 handleMinusButton = ()=> { 21 this.setState( { count: this.state.count-1}); 22 } 23 24 render(){ 25 console.log("render"); 26 return( 27 <div className="container"> 28 <div>count: {this.state.count}</div> 29 30 <button onClick={this.handlePlusButton}>+1</button> 31 <button onClick={this.handleMinusButton}>-1</button> 32 </div> 33 ) 34 } 35} 36export default App;
試したこと、及び仮説
下記のように仮設をたてました↓
index.jsのReact.StrictModeがrenderしているためかも???
参考記事 (海外記事です)↓
2回レンダリングされたReact Components —これを修正する方法はありますか?
補足情報(FW/ツールのバージョンなど)
参考にした補足記事
レンダリング段階のライフサイクルで予期しない副作用を検出する?
↓
One of the benefits that we get from React.StrictMode usage, is that it helps us to detect unexpected side effects in the render-phase lifecycles.
これが答えなような気がしてきました・・・・要はReactを使用を安全にするためでしょうか?
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/09/25 07:41