javascript - 如何在反应中从列表呈现的已删除行上运行加载程序图标?
问题描述
嗨,我正在渲染来自 api 响应的照片列表。当我删除其中一个时,只有该行应该显示加载程序。但截至目前,我在所有行上都看到了加载器图标
let boilerImages;
if( listOfPhotos.data!== undefined && listOfPhotos.data.task && listOfPhotos.data.task.metadata !==''){
boilerImages =
listOfPhotos.data &&
JSON.parse(listOfPhotos.data.task.metadata).files.map((token, index) => {
console.log('key', index)
const fileUrl = `url/${token}?subscription-key="something"`
return (
<div className="list-wrapper" key={token+index}>
<div className="img-block">
<img className="img-block-bucket" src={fileUrl}/>
/* This is the part of loader - start */
{
this.props.isDeleting ?
<SvgIcon
svg={"icons/loading-spinner.svg"}
key={index}
fromUrl={true}
className={"deleting-svg"}
/>:
<label className="img-block-file-name">
{this.getFileName(fileUrl)}
</label>
}
/* This is the part of loader - end */
</div>
<button disabled={this.props.isDeleting} className="del-block" onClick={() => removePhoto(token)}>
<SvgIcon
svg={"icons/ic_trash_bin_48_black.svg"}
key={index}
fromUrl={true}
className={!this.props.isDeleting ? "del-block-svg" : "del-block--disabled"}
/>
</button>
</div>
)});
}
this.props.isDeleting 在 redux 状态下设置为 true,当我调用 removePhoto 操作并且 this.props.isDeleting 在 redux 状态下设置为 false,当我在更新时调用 renderPhoto 操作
解决方案
它不是isDeleting
一个布尔值,而是一个布尔值数组,其中每个条目都是列表项的加载状态,然后你只需要做类似的事情
{(this.props.isDeleting[index] && ) && (
<SvgIcon
svg={"icons/loading-spinner.svg"}
key={index}
fromUrl={true}
className={"deleting-svg"}
/>)}
推荐阅读
- python - 如何找到我的图形 python 的梯度
- python - python web 抓取但被阻止
- c - 基准 C 结构比较:XOR 与 ==
- android - 使用开关启用和禁用推送通知
- kubernetes - Istio 本地优先级负载均衡不起作用
- r - 如何使用ggplot手动设置线色和线型以因子变量
- python - 无法获取本地颁发者证书并且在 python 中超出了最大重试次数
- javascript - 重新组合元素的过滤器不起作用
- ruby-on-rails - Rails - 了解查询
- java - 类路径资源 [myfile.xml] 无法解析为 Docker 中的绝对文件路径