Hola a todos, tenía problemas para llamar a dispatchers y captadores en la API de composición en getters .
A continuación se muestra mi tienda:
// state items: Item[] = []; // getters get getItems(): ComputedRef<Item[]> { return computed(() => this.items); } // mutations @Mutation commitSaveItems(items: Item[]) { this.items = items; } // actions @Action async dispatchGetItems(): Promise<boolean> { const response: Response = await this.api.getItems(); const items: Item[] = response.data; console.log(items); this.commitSaveItems(items); return true; }componibles como:
export function allItems(): ComputedRef<Item[]> { const items = itemStore.getItems; return items; } export async function getItems(): Promise<boolean> { return itemStore.dispatchGetItems(); }componente como:
setup() { getItems(); let items = allItems(); return {items} }Soy consciente de que no puedo llamar a getItems() -> eso está llamando a mi API y captadores en la configuración, pero no tengo ni idea de cómo hacerlo.
Quiero que inicialmente mi API obtenga los elementos y enlace el estado de los elementos y luego mi captador pueda mostrar mis elementos en mi plantilla. cualquier ayuda será apreciada
Para cualquier otra persona atrapada en lo mismo, obtuve la siguiente solución por ahora: como no tenemos beforeCreated de creación y Created anterior, se reemplaza por la configuración. Así que llamo a mi despachador onBeforeMounted mi código actualizado y de trabajo es el siguiente:
setup() { let items: ComputedRef<Item[]> = computed(() => []); onBeforeMount(async () => { await getItems(); items = allItems(); }); }avíseme para obtener una solución más optimizada