我從父母那里得到道具
const props = defineProps<{
customer: Customer
}>()
然后我將 const 分配給 vModel,以便能夠寫入/更改資料,因為道具是只讀的。
model = useVModel(props, 'customer')
然后在我使用的表格上
<input v-model="model.name" type="text" />
我想要的只是將 props 中的資料修改put為 api。
簡單粗暴。編輯:
因為我不能:
<input v-model="model.name" :value="model.name" type="text" />
我想通過 Props 填充表單,然后通過 v-model 更新它們
我試圖弄清楚,如何創建一個 crud 并將道具傳遞給模態進行編輯。
編輯2:
我嘗試添加到 ref()
let formData = ref({
customer: {
name: props.customer.name,
department: props.customer.department,
},
})
所以我可以使用
<input v-model="formdata.customer.name" type="text" />
但我得到:
EditCustomer.vue:66 Uncaught (in promise) TypeError: Cannot read properties of undefined (reading 'name')
uj5u.com熱心網友回復:
props 不能props.foo =像props.foo.bar =. 唯一合適的方法是將事件發送到存在通過 prop 傳遞的值的父組件,以便它可以為子組件修改它。這是做什么v-model的。
無法useVModel(props, 'foo')將函式撰寫成那樣作業,因為它提供的引數只允許修改props.foo,這是只讀的。為了使其作業,useVModel需要實作雙向系結,因此可以在父級中更改具有更新值的事件,因此它需要能夠發送事件。這是檔案列出的內容:
const data = useVModel(props, 'data', emit)
console.log(data.value) // props.data
data.value = 'foo' // emit('update:data', 'foo')
示例ref不起作用,因為props.customer.name直接在 setup 函式內部訪問,這會破壞反應性并且此時也會導致錯誤props.customer === undefined。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/451590.html
上一篇:如何將元素UI添加到Vue3
