Vuejs 对键的设置操作失败:目标是只读的
P粉785905797
2023-08-26 11:26:25
<p>我使用 Laravel9 和 Vuejs3。
我有一个将 php 变量传递给 vue 组件的刀片视图:</p>
<pre class="brush:php;toolbar:false;"><subscription-form
location="{{ $props['location'] }}"
orientation="{{ $props['orientation'] }}"
/></pre>
<p>在我接收数据的主 vue 中,我在脚本设置中有以下代码:</p>
<pre class="brush:php;toolbar:false;">const initProps = defineProps(['location', 'orientation']);
const values = reactive(initProps);</pre>
<p>这个父 vue 调用这样的组件:</p>
<pre class="brush:php;toolbar:false;"><component
v-bind:is="steps[step]"
v-bind:formValues="values"
></component></pre>
<p>问题是我的反应变量 <code>values</code> 无法在我的子 vue 中写入。
我有错误</p>
<pre class="brush:php;toolbar:false;">[Vue warn] Set operation on key "location" failed: target is readonly.</pre>
<p>这发生在我这样做时:</p>
<pre class="brush:php;toolbar:false;">props.formValues.location = location;</pre>
<p>当我不必将 php 变量从刀片传递到父 vue 时,它就可以工作。但现在我有两个级别的数据道具,从刀片到主 vue,然后从主 vue 到子组件,它是只读的。</p>
<p>救命!</p>
<p>我尝试将 <code>initProps</code> 或 <code>values</code> 变量从 const 类型切换为 var,但它没有执行任何操作。</p>
我很失望... 这不起作用,因为我的 DefineProps() 返回未定义 问题是:大写字母! 我更改了
到
我的 DefineProps() 返回我的对象! 为什么这不适用于大写字母?