javascript - 如何在反应中创建和删除组件?
问题描述
我在使用 reactDom 创建和删除组件时遇到问题
我正在尝试从其类中销毁弹出组件,但它给了我一个警告
// file: successfull.js
mostrarPopUp(enterprise) {
let contenedor = document.getElementById('popup');
ReactDOM.render(<Popup empresa={enterprise} />, contenedor);
}
// file: popup.js
closeComponent() {
console.log("Destruir componente");
let element = document.getElementById("contenedorpop");
let container = ReactDOM.findDOMNode(element);
ReactDOM.unmountComponentAtNode(container);
}
我有下一个警告
Warning: unmountComponentAtNode(): The node you're attempting to unmount was rendered by React and is not a top-level container. You may have accidentally passed in a React root node instead of its container.
解决方案
您应该根据布尔值呈现它,即
{ this.state.shouldIRender === true ? <Popup empresa={enterprise} /> : null }
并在 closeComponent
closeComponent() {
this.setState({
shouldIRender: false
})
}
推荐阅读
- excel - OnTime 时间戳值翻倍
- azure - Azure 中的 Contributor 角色可以查看 DB、DWH 和 blob 等资源的数据吗?
- python - 底图类型错误:输入必须是数组、列表、元组或标量
- javascript - 如何使用 Jest/Enzyme 测试去抖功能?
- shopify - shopify api在一次调用中发布多个变体图像
- c# - 如何在 C# 中清除图片框?我尝试将属性设置为 null 但它不起作用
- clojure - 如何让 clojure 生成这个简单的 YAML 文件?
- bit-manipulation - 重新思考 DB 按位比较
- javascript - 使用 JQuery 透视 JSON 对象
- python - Python:如何从“.cert”文件中提取公钥?