【问题标题】:Fetched data is not populated in table [vue]获取的数据未填充在表 [vue] 中
【发布时间】:2022-12-13 00:46:56
【问题描述】:

我是 js/vue 的新手,我正在尝试从 API 获取数据。我有一个字段,该字段的值将用于从该关键字的 API 获取数据。我可以在控制台日志中看到我确实将数据作为数组获取。但是,该数据不会填充到表中。

值得一提的奇怪之处在于,如果我对代码稍作更改,例如删除额外空间并保存...而我仍然打开浏览器并获取数据,那么表格将被填充。

在脚本中我有:

let data;

const fetchData = async (inputString: string) => {
 data = await getData(inputString);
 console.log('Data', data);
 return data;
}

和输入字段+按钮: <input v-model='inputString' placeholder='Write keyword here' /> <button action @click='fetchData(inputString)"> Fetch data </button>

【问题讨论】:

    标签: javascript arrays typescript vue.js datatable


    【解决方案1】:

    您的数据变量需要对模板具有反应性才能了解更改。

    import { ref } from 'vue';  
    const data = ref<null|string>(null);
    
    const fetchData = async (inputString: string) => {
     data.value = await getData(inputString);
     console.log('Data', data);
     return data.value;
    }
    

    在您的模板中,您可以简单地使用这样的数据:

    <div>{{data}}</div>
    

    在此处查看有关反应性的更多信息:https://vuejs.org/guide/essentials/reactivity-fundamentals.html#reactive-variables-with-ref

    【讨论】:

    • 非常感谢你的帮助。我已经尝试过你的建议,但我无法让它发挥作用。我也试过:import { ref } from "vue"; let data = ref(); 还添加了 let data = await getData 并添加了 :ref="(data)" 到表中。我认为你是绝对正确的,我需要让变量反应,我只是很难理解这个想法
    • 我扩展了我的答案。您可能缺少 .value
    猜你喜欢
    • 1970-01-01
    • 2020-08-25
    • 2019-01-08
    • 1970-01-01
    • 2017-03-31
    • 2021-10-06
    • 2019-01-16
    • 1970-01-01
    • 2020-05-31
    相关资源
    最近更新 更多