在写一个json格式化预览页面的时候,需要实现一键展开/收起右侧预览区json结构,但是这个组件提供的这个参数只能在组件加载时就配置好,并不能动态去进行修改这个参数实现展开/收起状态。
<json-viewer
:show-array-index="true"
:show-double-quotes="true"
style="border: 0"
:value="jsonRes"
:expand-depth=expandDepth
boxed
sort
></json-viewer>
如图这个expand-depth是用来控制展开层数的,只要能动态实现修改此参数便可动态实现展开/折叠,但是组件并不支持,因此是用了个曲线救国的方法。
<a-button @click="()=>reloadKey+=1;">一键展开</a-button>
<json-viewer
:key="reloadKey"
:show-array-index="true"
:show-double-quotes="true"
style="border: 0"
class="animate__animated animate__fadeIn"
:value="debugRes"
:expand-depth=expandDepth
:expanded="true"
boxed
sort
></json-viewer>
最终曲线救国的方案就是:给这个组件绑定一个key,并且在单击这个"一键展开"的时候将reloadKey+1,这样就能实现重载这个组件,但是会有一个小小的闪烁,所以可以给组件加上缓入的动画,其他第三方组件如果不支持动态重载的话,也能用绑定key的方式让它动态加载。