vue.js父子组件动态传值。

问题描述

我的树形子组件接收父组件传递的数据,点击父组件按钮修改传递到子组件的数据,汇报这样的错误。图片描述

问题出现的环境背景及自己尝试过哪些方法

我子组件用watch深度监听了传过来的对象,但还是不行。

相关代码

// 请把代码文本粘贴到下方(请勿用图片代替代码)

<base-tree :treeHeight="(height-40)" :load="true" :treeId="6655" v-on:treeChange="treeClick" :treeDataObj="treeObj"></base-tree>

    watch: {
        treeDataObj: {
            handler(newVal, oldVal) {
                this.sw = false;
                if (newVal) {
                    this.nodeArray=[];
                    this.index = newVal.index;
                    this.groupId = '';
                    this.isUser = newVal.isUser;
                    this.ztreeDataSourceSync = [];
                    if(newVal.searchText){
                        this.searchText = newVal.searchText;
                        this.treeSearch();
                    }else{
                        this.page = 1;
                        this.loadUserGroupTreeFromEs();
                    }
                }
            },
            deep: true //对象内部属性的监听,关键。
        },

你期待的结果是什么?实际看到的错误信息又是什么?

阅读 4.1k
2 个回答

父组件通过props传到子组件的值,是不能够直接在子组件中更改的。
根据这一点再检查一下代码

报错信息不是很明显么? 不可以在子组件中直接更改props的值 如果想使用这个值 请在data中 或者computed中解耦,正常来说props传对象你在子组件中更改是不会warn的 个人猜测因为deep之后 所以warn

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