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

删除数据库reactjs中显示的图像芯片

如何解决删除数据库reactjs中显示的图像芯片

我正在通过从数据库获取数据来将图像显示为芯片。如何删除db显示的图像芯片?

显示数据库中的图像-

{user.isImageUploaded != null ?
     <div >
          <p>
      {user.isImageUploaded.map(item => {
       const datatypeVar = item.fileType;
       const dataimageCode = item.filedata;
       const dataname = item.fileName
       return (
               <Chip
               label="Basic"
              size="small"
              label={dataname}
             onDelete={() => this.handleImgDelete(dataname)}
               avatar={
               <Avatar variant="rounded" alt="Remy Sharp" src= 
                         {`data:${datatypeVar};base64,${dataimageCode}`} />
                       }/>
                        )
                      })} : null}

user.isImageUploaded是从数据库映射的数据。如何编写handleImgDelete?

解决方法

首先,我们需要从数组中删除值的索引,这可以通过使用.map函数的第二个参数来实现。

.map((item,index) => { do some stuff here })

项目将是实际图像,索引将是数组中当前图像的索引(他们会猜到XD)

因此,您无需给dataeName赋予handeImgDelete,而是给索引

{user.isImageUploaded != null ?
     <div >
          <p>
      {user.isImageUploaded.map((item,index) => {
       const datatypeVar = item.fileType;
       const dataimageCode = item.filedata;
       const dataName = item.fileName
       return (
               <Chip
               label="Basic"
              size="small"
              label={dataName}
             onDelete={() => this.handleImgDelete(index)}
               avatar={
               <Avatar variant="rounded" alt="Remy Sharp" src= 
                         {`data:${datatypeVar};base64,${dataimageCode}`} />
                       }/>
                        )
                      })} : null}

您的handleImgDelete可能是这样的:

const handleImageDelete(index) => {
  // I am aware that this is a bad way of deep cloning a object (if you encounter problems with this you could use https://lodash.com/docs/#cloneDeep)

  let userCopy = JSON.parse(JSON.stringify(user));
  
  userCopy.isImageUploaded.splice(index,1)
  
  // Do stuff here to send to the db
}

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