【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次下载

相关推荐
JarvanMo8 小时前
Flutter. FractionallySizedBox
前端
知识分享小能手9 小时前
React学习教程,从入门到精通, React 入门指南:React JSX 语法知识点详解及案例代码(8)
前端·javascript·vue.js·学习·react.js·前端框架·anti-design-vue
卓码软件测评9 小时前
第三方web测评机构:【WEB安全测试中HTTP方法(GET/POST/PUT)的安全风险检测】
前端·网络协议·安全·web安全·http·xss
学习3人组9 小时前
React 组件基础与事件处理
前端·javascript·react.js
漂流瓶jz15 小时前
解锁Babel核心功能:从转义语法到插件开发
前端·javascript·typescript
周小码15 小时前
shadcn-table:构建高性能服务端表格的终极解决方案 | 2025最新实践
前端·react.js
大怪v15 小时前
老乡,别走!Javascript隐藏功能你知道吗?
前端·javascript·代码规范
webYin16 小时前
vue2 打包生成的js文件过大优化
前端·vue.js·webpack
gnip16 小时前
结合Worker通知应用更新
前端·javascript
叶玳言16 小时前
【LVGL】从HTML到LVGL:嵌入式UI的设计迁移与落地实践
前端·ui·html·移植