【问题】antd Image组件 PreviewType

问题描述:预览的图片由函数 getSignedUrl 函数对应生成。由于需要访问服务器,会产生加载时延,此时想要显示一张模糊版的 cover 图片或一个显示正在加载的Spin,等待函数加载完毕,再替换。不知道在 preview API中如何写,求助。

<Row gutter={[16, 40]}>
    {filteredData.map((item) => (
        <Col span={4} key={item.key}>
            <Card
                className="custom-card"
                cover={
                    <Image
                        src={item.image_path}
                        onError={() => handleImagePreview(item.image_path)}
                        preview={{
                        destroyOnClose: true,
                        src: isLoading ? '' : signedUrls,
                        onVisibleChange: (visible) => {
                              if (visible) {
                                handleImagePreview(item.image_path);
                              }
                            },
                        toolbarRender: (
                          _,
                          {
                            transform: { scale },
                            actions: {
                              onFlipY,
                              onFlipX,
                              onRotateLeft,
                              onRotateRight,
                              onZoomOut,
                              onZoomIn,
                              onReset,
                            },
                          },
                        ) => (
                          <Space size={24} className="toolbar-wrapper">
                            <DownloadOutlined onClick={() => handleDownload(item.image_path)} />
                            <SwapOutlined rotate={90} onClick={onFlipY} />
                            <SwapOutlined onClick={onFlipX} />
                            <RotateLeftOutlined onClick={onRotateLeft} />
                            <RotateRightOutlined onClick={onRotateRight} />
                            <ZoomOutOutlined disabled={scale === 1} onClick={onZoomOut} />
                            <ZoomInOutlined disabled={scale === 3} onClick={onZoomIn} />
                            <UndoOutlined onClick={onReset} />
                          </Space>
                        ),
                          }}
                        />
                      }
                      actions={[
                        <Checkbox
                          key={item.key}
                          checked={selectedKeys.includes(item.key)}
                          onChange={(e) => {
                            onSelectChange(e, item.key);
                          }}
                        />,
                        <DownloadOutlined key="download" onClick={() => handleDownload(item.image_path)} />,
                        <DeleteOutlined key="delete" onClick={() => handleDelete(item.key)} />,
                      ]}
                      style={{ marginRight: '12%' }}
                    >
                      <Meta description={item.image_size} />
                    </Card>
                  </Col>
                ))}
              </Row>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值