我有一個 Vue3 組件,setup()我在其中定義了以下函式:
const writeNote(note: Ref<Note>) => { console.log(`note ${note.id}` }
它接收一個Ref<Note>, 并且Note是一個介面。
這個函式在兩種情況下被呼叫:
- 在
<template>從組件(的事件@modified-note='writeNote'),所以什么被傳遞到功能是一個參考 - 在一個函式中
setup()檢索型別元素Note并將它們傳遞給writeNote. 在這種情況下傳遞的是“裸”變數”(不是參考)
我該如何解決這個矛盾?
- 在模板中的呼叫中,通過某種方式“取消參考”正在發送的內容?(在這種情況下,我會將函式中引數的型別修改為裸
Note) - 在函式 in 的呼叫中
setup(),為了這個呼叫,以某種方式將普通變數轉換為參考?
uj5u.com熱心網友回復:
您可以使用 Vue 的unref:
const writeNote(_note: Ref<Note> | Note) => {
const note = unref(_note);
console.log(`note ${note.id}`);
}
要么如此,要么在傳遞給writeNote您在問題中描述的那樣時,您將不得不創建一個反應變數。此解決方案更writeNote簡潔,但需要您更改函式的簽名和內部
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/330853.html
上一篇:擴展客戶端缺失功能
下一篇:根據它的道具確定型別
