You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Quasar框架QTable中勾选单个QCheckbox出现全选问题如何解决?

问题原因及修复方案

1. 错误的属性透传写法

你自定义body插槽时给<q-tr>、<q-td>绑定属性的方式错误,应该用v-bind="props"透传所有属性,而不是:props="props"。后者只是给组件传了一个名为props的自定义属性,没有把Quasar内部需要的行选择、行标识等属性正确透传,导致所有行的选择状态共享,出现选一个全选的问题。

2. 确认row-key对应字段值全局唯一

你给q-table设置了row-key="name",必须保证curData数组中每一项的name字段值是唯一不重复的。如果有重复的name值,Quasar会把这些行识别为同一条数据,选中其中一个就会同步选中所有重复name的行。如果你的数据里name字段有重复,可以换成其他唯一字段比如id作为row-key的值。

3. 冗余属性删除

<q-td>上的row-key="name"属性是无效的,row-key仅需要在q-table上声明即可,可以直接删掉这行冗余配置。

修复后核心代码参考

<q-table
  id="selection-table"
  :title="undefined"
  :data="curData"
  :columns="columns"
  @request="updateTableData"
  :rows-per-page-options="[10, 20, 30, 40, 50]"
  :pagination.sync="pagination"
  :loading="isLoading"
  row-key="name" <!-- 确保curData的name字段唯一,否则替换为其他唯一字段 -->
  class="no-shadow q-pa-none"
  selection="multiple"
  :selected.sync="selected"
  :selected-rows-label="getSelectedString"
>
  <template v-slot:body="props">
    <q-tr v-bind="props" class="q-pa-none"> <!-- 修改为v-bind透传 -->
      <q-td>
        <q-checkbox v-model="props.selected" />
        {{ props }}
      </q-td>
      <q-td
        v-for="col in props.cols"
        :key="col.name"
        v-bind="props" <!-- 修改为v-bind透传 -->
        class="q-pa-none"
        :auto-width="col.name == 'title' ? false : true"
      >
        <span v-if="col.name === 'title'">
          {{ props.row.title }}
        </span>
        <span v-else-if="col.name === 'status'">
          <span v-if="col.value === 0">... </span>
          <span
            v-else-if="
              col.value === 200 && props.goodsStatusCode === 11
            "
            >...</span
          >
          <span v-else>
            <span class="text-red">...)</span>
          </span>
        </span>
        <span v-else> {{ col.value }} </span>
      </q-td>
    </q-tr>
  </template>
</q-table>

内容的提问来源于stack exchange,提问作者Uhney

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 04:27:02