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() 傳回我的物件! 為什麼這不適用於大寫字母?