【antd】Switch,0和1,怎么办?

根据官方文档,Switch的值只可能是truefalse。但后端一般存储的是0和1,该怎么办?

方法一 转换接口数据

  1. 从接口来的数据 apiData={staus:1}
  2. 转化为表单 form={status:true}
  3. 再次转换传回接口 requestBody={staus:1}

方法二 封装Switch为NumericSwitch

示例代码来自AI

tsx 复制代码
import { Switch } from 'antd';

const NumericSwitch = ({ value, onChange, ...props }) => {
  return (
    <Switch
      {...props}
      checked={value === 1}
      onChange={(checked) => onChange(checked ? 1 : 0)}
    />
  );
};

方法三 使用react-vmodel

tsx 复制代码
"use client"
import { Button, Form, Switch } from "antd"
import { Model } from "react-vmodel"

  type FieldType = { status: number }
  const initialValues = { status: 1 }
  
export default function Demo() {
  const handleSubmit = (value: FieldType) => {
    console.log("value", value)
  }
  return (
    <Form onFinish={handleSubmit} initialValues={initialValues}>
      <Form.Item name={"status"}>
        <Model>{(vModel) => 
        <Switch {...vModel.checked({ trueValue: 1, falseValue: 0 })}></Switch>}
        </Model>
      </Form.Item>
      <Form.Item label={null}>
        <Button type="primary" htmlType="submit">
          Submit
        </Button>
      </Form.Item>
    </Form>
  )
}

支持一下

热情地欢迎各位兄弟姐妹的大力支持!

github: github.com/leafio?tab=...

期待至少一个项目能达成1000个star

期待至少一个npm能达成每周1000次下载

相关推荐
GISer_Jing10 分钟前
React手撕组件和Hooks总结
前端·react.js·前端框架
Warren984 小时前
Lua 脚本在 Redis 中的应用
java·前端·网络·vue.js·redis·junit·lua
mCell5 小时前
JavaScript 运行机制详解:再谈 Event Loop
前端·javascript·浏览器
帧栈9 小时前
开发避坑指南(27):Vue3中高效安全修改列表元素属性的方法
前端·vue.js
max5006009 小时前
基于桥梁三维模型的无人机检测路径规划系统设计与实现
前端·javascript·python·算法·无人机·easyui
excel9 小时前
使用函数式封装绘制科赫雪花(Koch Snowflake)
前端
萌萌哒草头将军10 小时前
Node.js v24.6.0 新功能速览 🚀🚀🚀
前端·javascript·node.js
持久的棒棒君11 小时前
启动electron桌面项目控制台输出中文时乱码解决
前端·javascript·electron
小离a_a12 小时前
使用原生css实现word目录样式,标题后面的...动态长度并始终在标题后方(生成点线)
前端·css
郭优秀的笔记12 小时前
抽奖程序web程序
前端·css·css3