piniaのstoreToRefsでundefinedになった時

投稿者:

こんなストアがある

export const useCounterStore = defineStore('counter', () => {
  const a = ref(0);
  const b = 1;
  return {a, b}
})

storeToRefsを使用する時に、bはundefinedになる

const {a, b} = storeToRefs(useCounterStore());

以下のようにすれば問題ないが、

// こうか
const b = useCounterStore().b;
// こう
const {b} = useCounterStore();

storeに持つな〜〜ってことかもなのでrefにするとか別の場所に持っていくとかしたらいいと思う

調べてみたら、refかreactiveのやつだけ返すようにしてあった

    store = toRaw(store)

    const refs = {} as StoreToRefs<SS>
    for (const key in store) {
      const value = store[key]
      if (isRef(value) || isReactive(value)) {
        // @ts-expect-error: the key is state or getter
        refs[key] =
          // ---
          toRef(store, key)
      }
    }

https://github.com/vuejs/pinia/blob/205e3df77a20d18f24b8835d85e66836a009a068/packages/pinia/src/storeToRefs.ts#L31-L63

松阪牛 ステーキ肉 4種盛り 牛肉 ステーキ ギフト【通常包装】 松坂牛 母の日 父の日 敬老の日 お中元 和牛 赤身 国産 黒毛和牛 牛肉 肉 お取り寄せ グルメ 和牛 プレゼント