简体   繁体   English

松果 | Vue3 - 访问深层对象中的数组

[英]Pinia | Vue3 - Accessing array in deep object

In Pinia (base.js)在 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)
    },..

in Vue (area.vue)在 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>
....

This, areaLocal , I get "AREA: LAX", which is correct, but HOW I can write "getter" in the pinia for access to "areaLocal2", the object "area" then the array?这个, areaLocal ,我得到“AREA:LAX”,这是正确的,但是我如何在 pinia 中写“getter”来访问“areaLocal2”,对象“area”然后是数组?

state.areaLocal2.area.find((areaLocal2.area) => areaLocal.id.area === areaId

The above throws an undefined error.上面抛出了一个undefined的错误。

getArea2ById: (state) => (areaIa) => state.areaLocal2.area.find((area) => area.id === areaId)

当您点击find高阶函数时,您已经在该area中,因此无需在其中再次引用它。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM