AntDesign中Table的选择项居右显示

近日项目里的一个小需求,在使用Table的rowSelection属性时遇到了一些小问题,记录一下。

需求:表格+后置单选

请添加图片描述

按理说是个很简单的需求,看了下文档说配置上rowSelection即可,

<Table
  columns={
    
    columns}
  dataSource={
    
    varietyData}
  rowSelection={
    
    {
    
    
    columnTitle: '操作', //标题
    type: 'radio',       //类型  单/多选
    columnWidth: 150,    //宽度
  }}
  bordered
  rowKey="id"
/>

配置完之后是这样

请添加图片描述

显然不太合适,操作应该在右侧,然后看了看rowSelection的配置,并没有将选择项右置的属性,只有一个fixed:boolean来配置是否将选择框固定在左侧。

查阅文章后发现有博主说其实fixed还有第二个类型:string,可以传入’left’或者’right’,来指定固定在左边还是右边。

请添加图片描述

配置的时候还有提示,写上了之后也没有代码报错。

<Table
  columns={
    
    columns}
  dataSource={
    
    varietyData}
  rowSelection={
    
    {
    
    
    columnTitle: '操作', //标题
    type: 'radio', //类型  单/多选
    columnWidth: 150, //宽度
    fixed: 'right', //对齐
  }}
  bordered
  rowKey="id"
/>

css样式也在审查元素时被加上了,但是却没有生效,还是老样子

请添加图片描述

请添加图片描述

这里初步判断为ant版本问题,求解无方,最后手写了一波。。。

	//设置状态
 	const [selectedRowKeys, setSelectedRowKeys] = useState<number[]>([]);
	//columns内加上
	{
    
    
      title: '操作',
      dataIndex: 'id',
      align: 'center',
      with: 150,
      key: 'action',
      render: (text: any) => (
        <Radio
          onClick={
    
    () => setSelectedRowKeys([text])}
          checked={
    
    selectedRowKeys.includes(text)}
        />
      ),
    },
    //注意取消时处理一下状态
   <Button
      onClick={
    
    () => {
    
    
        setIsShowChooseVariety(false);//关弹窗
        if (!choosedVariety) {
    
     //判断是否有已选择的值
          setSelectedRowKeys([]);
            //没有已确定选择的时候,选了之后点取消,下次进入还是空状态。
        } else {
    
    
          setSelectedRowKeys([choosedVariety.id]);
            //如果有已选择时候,无论怎么切换,点了取消之后还把选中项设置为选中项。
        }
      }}
    >
      取消
    </Button>

好了,逻辑实现:

请添加图片描述

虽然需求实现了,但是还是有些疑问,fixed:'right’没有生效,如有大佬知道原因望解答~

猜你喜欢

转载自blog.csdn.net/SJJ980724/article/details/126115890
今日推荐