【问题标题】:how to replace image when onerror is triggered. react js触发 onerror 时如何替换图像。反应js
【发布时间】:2021-12-29 21:03:59
【问题描述】:

发生错误时如何重定向图片网址?因为这行不通。我需要 2021 年的解决方案。

编辑:因为我正在通过数组进行映射。如何在return 函数之前定义密码?

          const dispatch = useDispatch();
          const passwordList = useSelector((state) => state.passwordList);
          const { loading, error, passwords } = passwordList;
        
          const [imgSrc, setImgSrc] = useState(
            "`https://example.com/${password.url}`"
          );
        
          const handleError = () =>
            setImgSrc("https://upload.wikimedia.org/wikipedia/commons/c/ce/Example_image.png");
        
 

       <ul >
{passwords.map((password) => (
  <div>
    <li
      key={password.id}
     >
      <img
        src={imgSrc}
        onError={handleError}
      />
    </li>
  </div>
))}
</ul>
        

这是我正在尝试做的一个示例: https://jsfiddle.net/maccman/2kxxgjk8/3/

【问题讨论】:

    标签: reactjs image onerror


    【解决方案1】:

    功能组件

    import { useState } from "react";
    
    const SomeComponent = () => {
      const [imgSrc, setImgSrc] = useState(/* original src */);
    
      const handleError = () => setImgSrc("https://upload.wikimedia.org/wikipedia/commons/c/ce/Example_image.png");
    
      return <img src={imgSrc} onError={handleError} />
    };
    

    类组件

    import { Component } from "react";
    
    class SomeComponent extends Component {
      constructor(props) {
        super(props);
        this.state = { imgSrc: /* original src */};
      }
      
      handleError = () => this.setState({
        imgSrc: "https://upload.wikimedia.org/wikipedia/commons/c/ce/Example_image.png"
      });
    
      render() {
        return <img src={imgSrc} onError={handleError} />;
      }
    }
    

    【讨论】:

    • 好的,一个小问题。我使用模板文字通过 useState 调用和定义 imgSrc。无论如何定义密码以便在返回函数之外映射?或者这是不可能的。我再次更新了帖子。我是否必须导出和导入单独的组件?
    猜你喜欢
    • 2022-06-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-25
    • 2017-11-07
    • 2021-10-14
    相关资源
    最近更新 更多