javascript - 图片不存在时不显示下一个/图片组件

标签 javascript reactjs next.js nextjs-image

我正在使用 next/image 并且我希望图像在图像路径无效时根本不渲染,例如。图像不存在。现在它显示小图标和替代名称。在这种情况下,我不想显示任何内容。那可能吗?由于它是前端,我不能使用 fs检查,所以我不知道该怎么做

      <Image
         src={`/scroll-${router.locale}.svg`}
         alt="scroll"
         width="240px"
         height="240px"
         className="opacity-50"
       />

最佳答案

您可以扩展内置的next/image并添加 onError如果图像无法加载,则处理程序不呈现组件。

import React, { useState } from 'react';
import Image from 'next/image';

const ImageWithHideOnError = (props) => {
    const [hideImage, setHideImage] = useState(false);

    return (
        !hideImage && (
            <Image
               {...props}
               onError={() => {
                   setHideImage(true);
               }}
            />
        )
    );
};

export default ImageWithHideOnError;
然后您可以使用该组件而不是 next/image .
<ImageWithHideOnError
    src={`/scroll-${router.locale}.svg`}
    alt="scroll"
    width="240px"
    height="240px"
    className="opacity-50"
/>

关于javascript - 图片不存在时不显示下一个/图片组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69538426/

相关文章:

php - 我可以将值从表单传递到弹出窗口,根据传递的内容显示一些内容,然后再传回一些内容吗?

reactjs - React Hooks 必须在每个组件渲染中以完全相同的顺序调用

javascript - Next.js。 Layout中如何调用组件的getInitialProps

javascript - 如何在 Next.js 中最好地导入 "server-only"代码?

java - 如何从 servlet 发送数组并在 HTML jquery 中接收?

javascript - 如何添加从 JSON 文件中获取图像,添加类并追加到 div 中?

javascript - 如何对存储为变量的多个元素应用更改事件?

javascript - redux 中的嵌套智能组件

javascript - 将 Play Framework 和 Twirl 模板与 Webpack 和 React 集成

javascript - React 中的条件渲染不起作用,状态不能正常工作?