关于我的带有supabase的vue测试应用程序的问题

6jjcrrmo  于 2023-02-13  发布在  Vue.js
关注(0)|答案(2)|浏览(118)

我有一个问题,如果我是正确的得到一个值的数组supabase给。
我用这段代码来做这件事

countries.value = parseInt(countries.value.map(({ aantal }) => aantal));

如果我不把它 Package 在parsInt中,我会得到如下的数字:[2000]所以当我 Package 它时,我只得到2000。这是正确的。我还使用. toString测试了它。也可以工作
我的问题:
这样做正确吗?因为我第一次真的很困惑为什么数字被方括号[]包裹
完整的代码

<script setup>
  import { ref, onMounted } from "vue";
  import { supabase } from "./lib/supabaseClient";

  const countries = ref();

  async function getCountries() {
    const { data } = await supabase.from("count").select("aantal");

    countries.value = data;
    console.log({ data });

    countries.value = parseInt(countries.value.map(({ aantal }) => aantal));
  }
  async function updateplus() {
    countries.value++;
    console.log("update", countries.value);
    const { data, error } = await supabase
      .from("count")
      .update({ aantal: countries.value })
      .eq("id", 1)
      .select();

    console.log("update", { data, error });
  }
  onMounted(() => {
    getCountries();
  });
  const nummber = countries.value;
</script>

<template>
  <div>
    {{ countries }}
    {{ nummber }}
    Count
  </div>
  <div><button @click="updateplus()">Plus 1</button></div>
</template>
oxosxuxt

oxosxuxt1#

如果你总是只需要一个值,那么你应该在查询中使用.single()。但是如果你需要0到1行,那么你应该使用.maybeSingle()。如果你不使用这两种方法中的任何一种,那么你总是会得到作为数组返回的数据。

const { data } = await supabase.from("count").select("aantal").maybeSingle();
zpgglvta

zpgglvta2#

我用了这个看起来更好

async function getCountries() {
    const { data } = await supabase
      .from("numbers")
      .select("aantal")
      .limit(1)
      .single();

    countries.value = data.aantal;
    console.log({ data });
  }

相关问题