为何我的JavaScript(Vue)代码中的对象属性被标记为只读状态?
<p>我有一个Vue 2应用程序,其中有一个状态变量(一个包含盒子对象的数组)叫做<code>boxes</code>。我有一个计算属性,它从这些盒子中提取一个子集(<code>nearest_box_linked_boxes</code>)。</p>
<p>我有一个方法,它遍历<code>nearest_box_linked_boxes</code>返回的盒子,并改变每个元素的一个属性的值:</p>
<pre class="brush:php;toolbar:false;">for(let i=0;i<this.nearest_box_linked_boxes.length;i++)
{
let box = this.nearest_box_linked_boxes[i];
box.object_class = this.$store.state.selected_object_class;
box.patch();
}</pre>
<p>这个方法返回了一个错误:</p>
<pre class="brush:php;toolbar:false;">vue.esm.js:648 [Vue warn]: Error in v-on handler: "TypeError: Cannot assign to read only property 'object_class' of object '#<Box>'"</pre>
<p>我从未明确地将任何盒子对象(或它们的属性)设为只读。我确实知道我不能写入<code>nearest_box_linked_boxes</code>(父数组对象),因为它是一个计算属性,但我认为应该可以修改此数组中每个元素的属性。</p>
<p>我是否遇到了由Vue和计算属性引起的问题,还是其他原因?</p>