gpt4 book ai didi

javascript - Quasar 显示来自对象的存储对象的表行

转载 作者:行者123 更新时间:2023-12-02 22:50:38 28 4
gpt4 key购买 nike

我在 q 表中显示数据时遇到问题。问题是因为我已将数据作为对象的对象存储在 store 中,但 q-table 需要数据作为对象数组。这是我的代码

store.js

import Vue from 'vue'

const state = {
tasks: {
'ID1': {
name: 'Go to shop',
completed: false,
dueDate: '2019/05/12',
dueTime: '18:30'
},
'ID2': {
name: 'Get bananas',
completed: false,
dueDate: '2019/05/13',
dueTime: '14:00'
},
'ID3': {
name: 'Get apples',
completed: false,
dueDate: '2019/05/14',
dueTime: '16:00'
}
}
}

export default {
namespaced: true,
state,
mutations,
actions,
getters
}

组件

<template>
<q-page padding>
<q-table
padding
title="Tasks"
:data="tasks"
:columns="columns"
row-key="name"
hide-bottom
>
<template v-slot:body="props">
<q-tr :props="props">
<q-td key="name" :props="props">
{{ props.name }}
</q-td>
<q-td key="created" :props="props">
{{ props.created }}
</q-td>
</q-tr>
</template>
</q-table>

</q-page>
</template>

<script>
import {mapState} from 'vuex'

export default {
data () {
return {
columns: [
{ name: 'name', required: true, label: 'Name', align: 'left', field: row => row.name, sortable: true },
{ name: 'created', required: true, label: 'Created', align: 'left', field: row => row.created, sortable: false },
],
}
},
computed: {
...mapState('tasks')
}
}
</script>

这会产生问题无效的 Prop : Prop “数据”的类型检查失败。需要数组,得到对象。那么我需要如何格式化我的代码才能显示表行,因为存储对象“任务”需要是对象的对象,并且我无法将其重新格式化为对象数组。

如果您需要任何其他信息,请告诉我,我会提供。谢谢!

最佳答案

您可以简单地从 tasks 创建另一个(本地)计算的 arrayTasks 并将其用于 q-table

computed: {
...mapState('tasks'),
arrayTasks() {
return Object.values(this.tasks);
}
}

和模板

<q-table
padding
title="Tasks"
:data="arrayTasks"
:columns="columns"
row-key="name"
hide-bottom
>

如果你不需要原始任务作为对象的对象,你也可以这样做

computed: {
...mapState({
tasks: state => Object.values(state.tasks) // Object values to Array
})
}

关于javascript - Quasar 显示来自对象的存储对象的表行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58190259/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com