当前位置: 首页 > 知识库问答 >
问题:

javascript - vue2传递个子组件的数据没有更新?

康泽宇
2023-09-11
<template>  <div>    <div class="left">      <Tree :data="data"></Tree>    </div>  </div></template><script>import Tree from '@/components/tree/index.vue'import {GetOrganiztionalData,GetUserList} from '@/api/detailedList'export default {  components: {Tree},  data() {    return {      data: []    }  },  props: {    treeUserInfo: Object  },  created() {    this.getOrganizational()  },  methods: {    // 辅助函数:根据部门ID找到对应的部门节点findDepartmentNode(departmentId, nodes) {  for (const node of nodes) {    if (node.id === departmentId) {      return node;    }    // 如果该节点有子节点,递归查找    if (node.children && node.children.length > 0) {      const foundNode = this.findDepartmentNode(departmentId, node.children);      if (foundNode) {        return foundNode;      }    }  }  return null; // 如果找不到对应的部门节点},    getOrganizational() {      GetOrganiztionalData({}).then(res => {        if(this.treeUserInfo.erpCode) {        console.log('2222')          this.data = [res.data]          const id  = this.treeUserInfo.erpDepCode          this.getUserInfo(id)        } else {          this.data = [res.data]        }      })    },    getUserInfo(id) {      const departmentNode = this.findDepartmentNode(id, this.data)      if(!departmentNode.children) {        this.$set(departmentNode, 'children', [])      }      const obj = {        erpParentCode: id      }      let array = []      GetUserList(obj).then(res => {        res.data.map(item => {          array.push({            text:item.erpName,            erpCode: item.erpCode          })        })        departmentNode.children.push(...array)      })    }  },}</script>

这是我写的代码,走console.log('222')的时候,传递给子组件的 data数据没有,应该怎么解决

共有1个答案

幸弘光
2023-09-11
this.$set(this, 'data', [res.data])
this.$set(departmentNode, 'children', [...departmentNode.children, ...array])
 类似资料:
  • 本文向大家介绍Vue2.x中的父组件传递数据至子组件的方法,包括了Vue2.x中的父组件传递数据至子组件的方法的使用技巧和注意事项,需要的朋友参考一下 父组件结构 template script 注意的点: •子组件的拼写方式:vGirlGroup写成v-girl-group •这里子组件中的绑定数据是:girls="aGirls",这里的aGirls数据是父组件中的data,girls是要传递至

  • 本文向大家介绍详解vue2父组件传递props异步数据到子组件的问题,包括了详解vue2父组件传递props异步数据到子组件的问题的使用技巧和注意事项,需要的朋友参考一下 测试环境:vue v2.3.3, vue v2.3.1 案例一 父组件parent.vue 子组件child.vue 上面按照这里的解析,子组件的html中的{{childData}}的值会随着父组件的值而改变,但是create

  • 本文向大家介绍Vue 父子组件的数据传递、修改和更新方法,包括了Vue 父子组件的数据传递、修改和更新方法的使用技巧和注意事项,需要的朋友参考一下 父子组件之间的数据关系,我这边将情况具体分成下面4种: 父组件修改子组件的data,并实时更新 子组件通过$emit传递子组件的数据,this.$data指当前组件的data(return{...})里的所有数据, 之后通过父组件的getinputda

  • 上面是代码 现在的问题是 上传多个文件的时候回调用多次接口,比如上传三个文件就回调用三次axios请求 现在需要解决的是 上传多个文件只执行一次axios请求

  • 问题内容: 在React中,我有类似的文件 parent.js 包含文本框和按钮 child.js 包含P标签 App.js 包含父组件和子组件 问题 将“父级”上的“文本框”值传递给子级,并将其显示在子级标记中。 完整代码 堆叠 问题答案: 更新了示例以将数据传递给子组件。 https://stackblitz.com/edit/react- trmj9i?file=child.js 在下面添加

  • 问题内容: 假设我有一个包含大量元素的javascript数组(50-200之间的任何位置)。 我想使用ajax将其发送到PHP(预备语句)。目前,我在循环中多次创建一个php文件,但我想将其转换为数组并发送一次数组,然后将PHP文件加载一次,而不是50-200次。 问题答案: 您可以使用JavaScript对数组进行编码,然后在PHP脚本中使用以对其进行检索。