javascript - Hur löser man ett Firestore-promise direkt till en Vue reactive() proxy?
Med Vue 3/Typescript, hur löser jag ett FireStore-löfte som resulterar i en array av objekt, till ett reaktivt proxy-objekt med hjälp av map()?
I det här fallet vill jag inte använda forEach() eller Vuex.
setup(){
...
const clients = reactive(
db
.collection('users')
.orderBy('name', 'asc')
.get()
.then(snapshot =>
snapshot.docs.map(doc => ({
id: doc.id,
name: doc.data().name,
}))
)
)
...
}
console.log() :
Promise { <state>: "pending" }
<state>: "fulfilled"
<value>: Array [ {…} ]
Svar #1
Initiera din reaktiva egenskap med en tom array och ändra sedan inuti onMounted-hooken:
setup(){
...
const state = reactive({
clients:[]
})
onMounted(()=>{
db.collection('users')
.orderBy('name', 'asc')
.get()
.then(snapshot =>{
state.clients= snapshot.docs.map(doc => ({
id: doc.id,
name: doc.data().name,
}))
})
})
...
}
