私はReactJSを試しています。子コンポーネントのレンダリングの仕組みを理解しようとしています。なぜこの子コンポーネントは再レンダリングされませんか?
var externalCounterVar = 10
class Counter extends React.Component {
constructor(props){
super(props);
this.state = props;
}
render() {
console.log('rendering counter')
return (
<div> {externalCounterVar} </div>
)
}
}
class Main extends React.Component {
constructor(props){
super(props);
}
handleClick() {
externalCounterVar += 1;
}
rerender(){
this.render();
}
render() {
console.log('rendering');
return (
<div>
<button onClick={this.rerender.bind(this)} />
<Counter counter={externalCounterVar} />
</div>
)
}
}
ReactDOM.render(<Main />, document.getElementById('root'));
私は「再レンダリング」、それはあなたのメインのrenderメソッドを呼び出しますが、カウンタではない理由を私は理解していない:ReactJSで私はこのような例を、設定している場合? MainとCounterはMainの子であるため、両方のレンダリングメソッドを呼び出す必要があるようです。
レンダリングが呼び出されたとき、「レンダリング」は印刷されますが、「レンダリングカウンタ」は印刷されません。
私はちょうど反パターンであることに気付いています。 – Rob