react 在组件内部怎么销毁组件?

render() {
    return (
        this.state.isRender ? (
            <div>hi</div>
        ) : null
    )
}

这种好像没有真的销毁!


最后我给父组件传递一个控制组件本身是否渲染的状态,这种方式解决了问题

阅读 34.1k
3 个回答

isRender为false的时候是真的销毁了,可以F12看dom数,当然,如果你指的是一些js实例的话那就只能手动销毁实例,别指望浏览器帮你全干了

var A = React.createClass({
  render:function(){
    return <div></div>
  }
});

var B = React.createClass({
  render:function(){
    return isRender ? <A/> : null
  }
});

isRender = false的时候A被销毁了,这能懂了没


只有一个组件那你就把代码放出来

var A = React.createClass({
  render:function(){
    return <div></div>
  }
});
ReactDOM.render(<A/>, domContainerNode)
ReactDOM.unmountComponentAtNode(domContainerNode)

这是只有一个组件了吧

ReactDOM.unmountComponentAtNode(document.getElementById("example"));其中:example 是容器id

参考资料

新手上路,请多包涵

添加key属性,不同的key属性会重新实例化

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题