【发布时间】:2018-09-11 20:45:35
【问题描述】:
我正在使用道具来更新子组件中的网站内容。这基本上是这样工作的:
<child-component :updatedArray="updatedArray" />
然后在子组件中:
<template>
{{updatedArray}}
<div>{{computedArray}}</div>
</template>
<script>
props: ['updatedArray'],
...
computed: {
computedArray() {
if(this.updatedArray.item == "item one") {return "item one"}
else {return "other item"}
}
}
</script>
现在,当我在父组件中更新 updatedArray 时,这段代码应该可以正常工作。然后我在我的子组件中看到我的{{updatedArray}} 正在正确更改,但我的computedArray 没有被触发并且不起作用。
我能问你为什么会这样吗? 计算是否不适用于每个道具更新?
我应该如何更正我的代码?
编辑:不重复 我没有改变道具,我只是根据它的值进行计算。
【问题讨论】:
-
帮我们一点忙。该变量名为
updatedArray,但您正在使用updatedArray.item在其上测试一个键。updatedArray是什么?一个数组还是别的什么? -
其实这是一个对象 updatedArray: {item: "item1", item2: "item2"} etc..
-
@Sphinx 不是这种情况,我不是在改变道具,我只是根据它的值进行计算
-
哈,需要绑定
v-bind:updated-array="updatedArray"
标签: vue.js