Ich experimentiere mit ReactJS und versuche zu verstehen, wie das Rendern von Child-Komponenten ausgelöst wird. In ReactJS, setze, wenn ich ein Beispiel, wie dies oben:Warum wird diese untergeordnete Komponente nicht neu gerendert?
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'));
Ich bin nicht sicher, ich verstehe, warum, wenn Sie „rerender“ es die Render Methode des Hauptes ruft aber nicht im Widerspruch? Es scheint, als müsste es beide Rendermethoden aufrufen, da Main und Counter ein Kind von Main sind.
Wenn also rerender aufgerufen wird, wird 'rendering' gedruckt, aber 'rendering counter' nicht.
Ich bin nur mit api, das ist ein Antipattern bewusst. – Rob