En 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) },..en Vue (área.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> .... Esto, areaLocal , obtengo "AREA: LAX", que es correcto, pero ¿CÓMO puedo escribir "getter" en pinia para acceder a "areaLocal2", el objeto "area" y luego la matriz?
state.areaLocal2.area.find((areaLocal2.area) => areaLocal.id.area === areaId Lo anterior arroja un error undefined .
getArea2ById: (state) => (areaIa) => state.areaLocal2.area.find((area) => area.id === areaId) Ya está en el area en el momento en que presiona la función de find de orden superior, por lo que no es necesario volver a hacer referencia a ella dentro de ella.