qq_43265886 2022-11-16 14:04 采纳率: 50%
浏览 17
已结题

antd checkbox根据后端动态更改选中

getColumns = () => {
        axios({
            'method': "get",
            'url': "http://xx"
        }).then(response => {
            var res = response.data
            if (res.status) {
                var arr = res.data.map(item => {
                    return {
                        title: item.name,
                        dataIndex: item.name,
                        align: "center",
                        render: (obj, record) => {
                            let currentP = item['permissions'][record.value] || {}
                            console.log(currentP);
                            return (
                                <Checkbox onChange={onChange} />
                            )
                        }
                    }
                })
                console.log(arr);
                arr.unshift({
                    title: "权限",
                    dataIndex: "cn_permission",
                    align: 'center'
                })
                this.setState(
                    { arr: arr }
                )
                var arr = []
                Object.keys(res['data'][0]['permissions']).forEach((permission, index) => {
                    var obj = {}
                    obj['node_order'] = index
                    obj['cn_permission'] = res['data'][0]['permissions'][permission].name
                    obj['en_permission'] = permission
                    res.data.forEach((role) => {
                        obj[role.name] = {
                            'id': role.id, value: role['permissions'][permission].value
                        }
                    })
                    arr.push(obj)
                });
                this.setState(
                    { datas: arr }
                )
            } else {
            }
            //console.log(textColumn);
        }).catch(error => {
        })
    };

 <Table
                    style={{ textAlign: 'center' }}
                    columns={arr}
                    dataSource={datas}
                    rowKey="permissions"
                    bordered
                    pagination={false}
                />

其中后端返回数据格式为类似如下结构:

[
    {
        "id": "3",
        "name": "系统管理员",
        "description": "a",
        "permissions": {
            "manage_company_user": {
                "name": "管理集团用户",
                "value": false
            },
            "manage_foreign_user": {
                "name": "管理外部用户",
                "value": false
            },
            "add_and_edit_project": {
                "name": "新建项目和编辑项目",
                "value": false
            },
            "edit_project": {
                "name": "编辑项目",
                "value": false
            },
            "edit_project_custom_field": {
                "name": "编辑项目自定义属性",
                "value": false
            },
            "edit_project_users": {
                "name": "编辑项目人员",
                "value": false
            },
            "manage_system_role": {
                "name": "管理职责列表",
                "value": false
            },
            "manage_category": {
                "name": "管理分类",
                "value": false
            },
            "manage_workflow": {
                "name": "管理状态流转设定",
                "value": false
            },
        },
    },
]

怎么样使用类组件根据后端所返回数据的value的true/false默认选中checkbox,且怎么样在选中checkbox后点击保存按钮向后端修改value

  • 写回答

4条回答 默认 最新

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 11月16日
  • 赞助了问题酬金15元 11月16日
  • 修改了问题 11月16日
  • 创建了问题 11月16日

悬赏问题

  • ¥15 有赏,i卡绘世画不出
  • ¥15 如何用stata画出文献中常见的安慰剂检验图
  • ¥15 c语言链表结构体数据插入
  • ¥40 使用MATLAB解答线性代数问题
  • ¥15 COCOS的问题COCOS的问题
  • ¥15 FPGA-SRIO初始化失败
  • ¥15 MapReduce实现倒排索引失败
  • ¥15 ZABBIX6.0L连接数据库报错,如何解决?(操作系统-centos)
  • ¥15 找一位技术过硬的游戏pj程序员
  • ¥15 matlab生成电测深三层曲线模型代码