vue两个相同自定义组件共用一个组件导致互相影响

发布于 2022-09-12 00:26:19 字数 1551 浏览 12 评论 0

自定义了一个名为BaseTreeForSelect的组件,他的内部调用了iview框架的tree组件,这个自定义组件的作用如下图(点击input弹出下拉树):
image.png

有一个页面需要使用两次这个自定义组件,一个用于搜索,一个用于添加
image.png

但是这两个互相影响,我在组件上加了key值用于区分也不行,下面是调用组件的代码

<BaseTreeForSelect :data='comm.schoolInfo' key='001' v-model='search.eclassIds' placeholder="选择班级"></BaseTreeForSelect>
<BaseTreeForSelect :data='addSchoolInfo' key='002' v-model='search.eclassIds' placeholder="选择班级"></BaseTreeForSelect>

这是组件内部

<template>
    <div class="base-tree-select-wrap" v-clickoutside="handleClose">
        <Input v-model='currentName' readonly :placeholder="placeholder" style="width: 100%" @on-focus='isShowTree = true' :clearable='clearable' @on-change='clearData'/>
        <transition name="baseTreeSelect">
            <div class="base-tree-select-con" :style="{'z-index':zIndex,'height':height}" v-if='isShowTree'>
                <Tree ref='TreeForSelect' :data="treeData"  @on-check-change='selectNodesByCheckBox' v-if='showCheckbox' showCheckbox></Tree>
                <Tree ref='TreeForSelect' :data="treeData" @on-select-change='selectNodes' v-else></Tree>
            </div>
        </transition>
    </div>
</template>

data也是用的方法实例,组建的data来源不同,输出也不同,怎么就互相影响了呢?
image.png

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

孤寂小茶 2022-09-19 00:26:19

绑定到了同一个数据,是会相互影响的

长亭外,古道边 2022-09-19 00:26:19

不好意思 上午太忙了没看到 JSON.parse(JSON.stringify(data))是深拷贝会改变指向地址 但如果有undefined 会丢失

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文