In the example below, I'm seeing Child
get unmounted and re-mounted on every ComponentA
render. None of the other components in the tree are re-mounted.
class ComponentA extends Component {
renderChild() {
return <Child />;
}
render() {
return <ComponentB>{this.renderChild()}</ComponentB>;
}
}
class ComponentB extends Component {
render() {
return <ComponentC passthruChild={() => children} />;
}
}
class ComponentC extends Component {
render() {
const PassedThruChild = this.props.passthruChild;
return <div><PassedThruChild /></div>;
}
}
Why is this happening, and how can I make it not happen?