微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何修复附加字段,删除并在渲染字段上显示

如何解决如何修复附加字段,删除并在渲染字段上显示

const [application,setApplication] = useState([
        {
          id: 1,code: 'adr',name: 'android',role: 'user'
        }])

  const [appRole,setAppRole] = useState([
    {
      id: null,code: null,name: null,role: null
    }
  ]);

      {
        label: 'Department',name: 'dept',type: 'select',config: {
          labelKey: "name",valueKey: "code",multiple: false
        },placeholder: 'Select Department (optional)',rule: yup.string(),},{
        label: (
          <div className="flex items-center">
            <label className="flex-1">Application - Role</label>
            <div className="text-right">
              <ButtonGroup>
                <IconButton icon={<Icon icon="plus" />} onClick={() => appendAppRole()} />
              </ButtonGroup>
            </div>
          </div>
        ),name: 'applications',renderer: (data) => {
          const { control,register,errors } = useFormContext();

          return (
            <div className="flex flex-col w-full">
              {
                appRole.map((item,index) => (
                  <div key={index} className="flex flex-col pb-2 -items-center">
                    <div className="flex pb-2 w-full">
                      <SelectPicker
                        placeholder="Select Application"
                        data={application['data']}
                        labelKey="name"
                        valueKey="code"
                        style={{ width: '100%' }}
                        onChange={(value) => control.setValue('applications',_setAppRole(value,index,'code'))}
                        value={control.getValues()['applications']?.code}
                      />
                      <SelectPicker
                        placeholder='Select Role'
                        data={roles}
                        labelKey='name'
                        valueKey='code'
                        style={{ width: '100%' }}
                        onChange={(value) => control.setValue('sbus','role'))}
                        value={control.getValues()['applications']?.code}
                      />
                    </div>

                    <div>
                      <button onClick={() => removeAppRole(index)}>DELETE</button>
                    </div>
                  </div>
                ))
              }
            </div>
          )
        }
      }


  const appendAppRole = () => {
    let i = 0;
    for (i = 0; i < noOfAppRole; i++) {
      setAppRole(arr => [...arr,{
        id: null,role: null
      }]);

      return appRole;
    }
  }

  const removeAppRole = (index) => {
    console.log(appRole.indexOf(index))
    if (index > -1) {
      appRole.splice(index,1)
    }
  }

  const _setAppRole = (value,idx,status) => {
    appRole[idx][status] = value;
    setAppRole(appRole);
    return appRole;
  }

这里的问题是当我尝试添加或追加时,当我关闭抽屉时,它不会重置为一个字段。还是两个。

它应该在线:

[{
            id: null,role: null
          }]

代替

[{ id:空, 代码:空, 名称:空, 作用:空 },{ id:空, 代码:空, 名称:空, 作用:空 }]

打开抽屉时它应该只有一个字段。

例如我有一个数据

const [rowData,setRowData] = useState([{
      name: 'jake',application: [{id: 3,code: "i1",name: "IOS",role: "USER"
}]
    }])

如何在 select 上显示数据,其中数据角色应显示在 select 角色上,而 rowData 应用程序应在数据存在时显示在 select 应用程序上

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?