react有tab页,如何实现未选中的tab页隐藏但不销毁
页面有tab页,有两个子页面,现在是这样实现
{ tab===1? <div id="tab1" /> : <div id="tab2" />
}
这样写法会导致子页面隐藏的时候被销毁,之前里面的data值全部重置。如何实现tab隐藏但不销毁
回答:
{
<div id="tab1" style={{ display: tab===1 ? '':'none' }} />
<div id="tab2" style={{ display: tab===1 ? 'none':'' }} />
}
antd.Tabs 底层代码就是这样实现缓存的。
你也可以利用 ReactDOM.createPortal 封装一个KeepAlive组件
参考:
在 React 中实现 keep alive
利用React原生API 实现keepAlive 组件
回答:
改style里面的display属性呢?
{ <div id="tab1" style={{display:tab===1?'block':'none'}} /><div style={{display:tab===1?'none':'block'}} id="tab2" />
}
回答:
可以对比 vue 中的 v-if 和 v-show
的区别, 一个是销毁组件, 一个是设置样式的 display: none
以上是 react有tab页,如何实现未选中的tab页隐藏但不销毁 的全部内容, 来源链接: utcz.com/p/936871.html