Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vue.js/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vue.js Vue js DOM未更新_Vue.js_Vuejs2 - Fatal编程技术网

Vue.js Vue js DOM未更新

Vue.js Vue js DOM未更新,vue.js,vuejs2,Vue.js,Vuejs2,我有几个组件:a、B、C 在组件A中,我有一个数组 从组件A中选择项目时: 我有一个emit到组件B中的一个方法,该方法使用data:{filesArray:[]} 在组件B中,我有一个带有props:filesaray 当我添加文件时 在组件C中,它如下所示:filesArray.push(myFile) 我的问题: 当我从组件A中选择一个项目,然后在组件C中添加一个文件时 在最初几次更新filesArray.length时,我可以看到数组的长度 第三次或第五次显示filesArray.l

我有几个组件:a、B、C 在组件A中,我有一个数组

从组件A中选择项目时:

我有一个
emit
到组件B中的一个方法,该方法使用
data:{filesArray:[]}

在组件B中,我有一个带有
props:filesaray

当我添加文件时 在组件C中,它如下所示:
filesArray.push(myFile)

我的问题: 当我从组件A中选择一个项目,然后在组件C中添加一个文件时

  • 在最初几次更新filesArray.length时,我可以看到数组的长度

  • 第三次或第五次显示filesArray.length 0,即使在组件C中推送项

我尝试了什么:按计算结果返回组件B中的FileArray.length:

 computed:{
    filesArrayLength(){
      debugger
      return this.filesArray.length;
    }
  },
它不起作用,我试着用手表。
而且它也不起作用

你不应该直接变异道具,即使你变异了,我也不认为你能指望它可靠地更新父系统中的数据。每当您想向
filesaray
添加一个项时,组件C应该会发出一个事件,以便组件B可以附加它。

您能给我们看一下您的3个组件吗?不确定你是否可以直接更新道具。我的代码太多了。在组件A中:我正在对组件B中具有FileArray的方法进行发射。在HTML中,我显示了长度。组件C有props:filesArray和一个执行此操作的方法:$props.filesArray.push(myFile);然后阅读如何创建一个最小的、具体的和可验证的示例:。如果没有任何代码,我们无法告诉您可能出了什么问题。