[英]Pinia | Vue3 - Accessing array in deep object
在 Pinia (base.js)
export const useBaseStore = defineStore('base', {
state: () => {
return {
areaLocal: [
{ id: 0, name: 'LAX' },
{ id: 1, name: 'SFO' },
{ id: 2, name: 'SAN' },
],
areaLocal2: {
area: [
{ id: 0, name: 'AAA'},
{ id: 1, name: 'BBB'},
{ id: 2, name: 'CCC'},
]},
}
},
getters: {
getAreaById: (state) => {
return (areaId) =>
state.areaLocal.find((areaLocal) => areaLocal.id === areaId)
},..
在 Vue (area.vue) 中
<script setup>
import { computed, ref } from 'vue'
import { storeToRefs } from 'pinia'
import { useBaseStore } from '../stores/base'
const areaStore = useBaseStore()
const { getAreaById } = storeToRefs(areaStore)
const areaIndex = ref(0)
</script>
<template>
<div class="container">
<h2>AREA: {{ getAreaById(areaIndex).name }}</h2>
....
这个, areaLocal
,我得到“AREA:LAX”,这是正确的,但是我如何在 pinia 中写“getter”来访问“areaLocal2”,对象“area”然后是数组?
state.areaLocal2.area.find((areaLocal2.area) => areaLocal.id.area === areaId
上面抛出了一个undefined
的错误。
getArea2ById: (state) => (areaIa) => state.areaLocal2.area.find((area) => area.id === areaId)
当您点击find
高阶函数时,您已经在该area
中,因此无需在其中再次引用它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.