Vue.js weex数据更改以更新到子组件 module.exports={ 数据:{ 视图信息:{ 属性0:value0, 属性1:值1 } }, 挂载:函数(){ getDataFromServer(); }, 方法:{ getDataFromServer:函数(){ var me=这个; var httpRequest=Service.getViewInfo(); httpRequest.on(“成功”,函数(数据){ me.viewInfo.attr2=data.info.attr2; me.viewInfo.attr3=data.info.attr3; me.viewInfo.attr4=data.info.attr4; }); httpRequest.send(); } } }

Vue.js weex数据更改以更新到子组件 module.exports={ 数据:{ 视图信息:{ 属性0:value0, 属性1:值1 } }, 挂载:函数(){ getDataFromServer(); }, 方法:{ getDataFromServer:函数(){ var me=这个; var httpRequest=Service.getViewInfo(); httpRequest.on(“成功”,函数(数据){ me.viewInfo.attr2=data.info.attr2; me.viewInfo.attr3=data.info.attr3; me.viewInfo.attr4=data.info.attr4; }); httpRequest.send(); } } },vue.js,components,weex,Vue.js,Components,Weex,topView.vue <template> <topView viewInfo="cardInfo"></topView> <bottomView viewInfo="cardInfo"></bottomView> <template> <script> module.exports = { data: { viewInfo:{

topView.vue

<template>
    <topView viewInfo="cardInfo"></topView>
    <bottomView viewInfo="cardInfo"></bottomView>
<template>
<script>
     module.exports = {
        data: {
          viewInfo:{
             attr0:value0,
             attr1:value1
          }
       },
       mounted:function(){
          getDataFromServer();
       },
       methods:{
          getDataFromServer:function(){
            var me = this;
            var httpRequest = Service.getViewInfo();
            httpRequest.on("success",function(data){
               me.viewInfo.attr2 = data.info.attr2;
               me.viewInfo.attr3 = data.info.attr3;
               me.viewInfo.attr4 = data.info.attr4;

           });
           httpRequest.send();
      }
    }
  }
</script>

{viewInfo.attr0}
{item.text}
{item.info}
{viewInfo.attr1}
module.exports={
数据:{
项目信息:[
{文本:'text 0',信息:*****},
{文本:'text 1',信息:*****},
{文本:'text 2',信息:*****}
]
},
道具:{
视图信息:{}
},
计算:{
getItems:function(){
this.itemInfo[0].info=this.viewInfo.attr2+“点”;
this.itemInfo[1].info=this.viewInfo.attr3+“点”;
this.itemInfo[2].info=this.viewInfo.attr4+“点”;
返回itemInfo;
}
},
方法:{
}
}
当我从服务器获取数据,并向viewInfo添加一些属性值时。子组件可以更新直接值。计算值无法更新与来自父组件的道具数据的关系

需要一些帮助。当我更新父组件“viewInfo”值时,如何更新计算项值。

Vue无法检测到在直接使用索引设置项时所做的更改,即
this.itemInfo[0]。info=this.viewInfo.attr2+“point”
不是被动的

对于上述内容,请使用
Vue.set

//创建一个新项目
var newItem=Object.assign({},this.itemInfo[0],{info:this.viewInfo.attr2+“point”})
//将新项设置为特定索引
此.$set(this.itemInfo,0,newItem)

您可以阅读更多信息:

谢谢@Psidom,按照您的建议,我还修改了`getDataFromServer函数,`getDataFromServer:function(){var me=this;var httpRequest=Service.getViewInfo();httpRequest.on(“成功”,函数(数据){me.$set(me.viewInfo,'attr2',data.info.attr2);me.$set(me.viewInfo,'attr3',data.info.attr3);me.$set(me.viewInfo,'attr4',data.info.attr4);});httpRequest.send();}`
<template>
<div>
  <text>{viewInfo.attr0}</text>
  <div v-for="(item, index) in getItems">
        <text>{item.text}</text>
        <text>{item.info}</text>
  </div>
  <text>{viewInfo.attr1}</text>
</div>
<template>

<script>
 module.exports = {
    data: {
      itemInfo:[
          {text:'text 0',info:"****"},
          {text:'text 1',info:"****"},
          {text:'text 2',info:"****"}
      ]
    },
    props:{
        viewInfo:{}
    },
    computed:{
      getItems:function(){
        this.itemInfo[0].info = this.viewInfo.attr2 +" point";
        this.itemInfo[1].info = this.viewInfo.attr3 +" point";
        this.itemInfo[2].info = this.viewInfo.attr4 +" point";

        return itemInfo;
      }
    },
    methods:{

       }
    }
</script>