这是我的
RequestList.vue
成分
<template>
<ion-item v-for="request in requests" @click="showRequest(request)" :key="request.id"
text-wrap>
<ion-label>
<b>Name:</b> {{ request.event.name }}
<br>
<b>Venue:</b>{{ request.event.venue.name }}
<br>
<b>Date:</b> {{ request.event.date }}
</ion-label>
</ion-item>
</template>
<script>
import {useRouter} from 'vue-router'
import {IonItem, IonLabel} from '@ionic/vue'
import store from '@/store';
export default {
components: {
IonLabel,
IonItem
},
props: {
requests: Array
},
setup(props) {
const router = useRouter()
const showRequest= (request)=> {
console.log('request', props.request);
store.requests.setRequest(props.requests);
};
return {router, showRequest}
}
}
</script>
我的
store/modules/requests.js
文件
import {computed, ref} from "vue";
const state = ref({
request: null
});
export function setRequest(request) {
state.value.request = request;
}
export const getRequest = computed(() => state.value.request);
我的
Requests.vue
我使用的组件
RequestList.vue
<template>
<ion-page>
<ion-header>
<ion-toolbar></ion-toolbar>
</ion-header>
<ion-content class="ion-padding-start ion-padding-end">
<ion-list-header>
<ion-label>
<b>Requests</b>
</ion-label>
</ion-list-header>
<div v-if="!loading">
<request-list :requests="requests" />
</div>
<div v-else>
<ion-spinner class="spin"></ion-spinner>
</div>
</ion-content>
</ion-page>
</template>
<script>
import { defineComponent } from 'vue'
import { IonContent, IonHeader, IonLabel, IonListHeader, IonPage, IonSpinner, IonToolbar } from '@ionic/vue'
import { reactive, toRefs } from '@vue/reactivity'
import { onMounted } from '@vue/runtime-core'
import RequestList from '../components/RequestList'
import firestoreService from '@/services/firestore'
export default defineComponent({
components: {
IonContent,
IonPage,
IonLabel,
IonHeader,
IonSpinner,
IonToolbar,
IonListHeader,
RequestList
},
setup() {
const state = reactive({
requests: [],
loading: false
})
onMounted(async () => {
state.loading = true
try {
state.requests = await firestoreService.getClaimableRequestsForCurrentUser()
} catch (e) {
console.log('error occurred fetching requests for current user', e)
} finally {
state.loading = false
}
})
return {
...toRefs(state),
}
}
})
</script>
我的问题是,在上面的RequestList.vue中
showRequest
处理程序正在发送
request
作为代理的param。这就是为什么
store.requests.setRequest(props.requests)
正在商店中设置代理。而我需要props.requests的价值。
那么,我在这里该怎么做呢?