【问题标题】:Image does not appear after calling it from API - ReactJS Hook从 API 调用图像后不出现图像 - ReactJS Hook
【发布时间】:2021-09-05 21:16:40
【问题描述】:

我无法显示通过调用 API 检索到的图像。在 Web 控制台中,它确实显示了我的图像字符串,但是,图像没有显示在我的 Web 应用程序中。出现一个带十字的小白框,而不是实际图像。我在 html 部分中调用图像错误吗?

代码:调用 API 检索图像

const [getText, setText] = useState([])
const [getImg, setImg] = useState([])

useEffect(() => {
    const url = "API link"

    const fetchData = async () => {
        try{
            const response = await fetch(url);
            const json = await response.json();
            console.log(json[0]["results");
            console.log(json[1]["image");
            setText(json.[0]["results"]);
            setImg(json.[1]["image"]);
        }catch (error) {
            console.log("error", error)
        }
    };
    fetchData();
}, []);

return (
       .
       .
       .
       <img src={getImg}></img>
)

【问题讨论】:

  • img 标签在哪里显示图像?
  • 我的错,编辑了源代码。
  • 你需要改成getImg
  • 是的,我把它改成getImg,但图像仍然无法出现
  • 你还没有关闭setText和setImg中的括号!在您 setText 的行中执行此操作 ssetText(json.[0]["results"]);setImg(json.[1]["image"]); 每行中您都缺少最后一个)

标签: reactjs image api react-hooks


【解决方案1】:

好的,有一些拼写错误,或者您只是错误地没有抓住它们。我已经修复了它们并根据您共享的原始代码评论了更改。如果您能提供您的 img api 返回的内容会有所帮助,希望这对您有用。

const [getText, setText] = useState([])
const [getImg, setImg] = useState([])

useEffect(() => {
    const url = "API link"

    const fetchData = async () => {
        try{
            const response = await fetch(url);
            const json = await response.json();
            console.log(json[0]["results");
            console.log(json[1]["image");
            //getText(json.[0]["results"]; // Did you mean 'setText' instead? also closing ')' parenthesis missing
            setText(json.[0]["results"]);
            //getImg(json.[1]["image"]; // Did you mean 'setImg' instead? also closing ')' parenthesis missing again
            setImg(json.[1]["image"]);
        }catch (error) {
            console.log("error", error)
        }
    };
    fetchData();
}, []);

return (
       .
       .
       .
       <img src={getImg}></img>
) // Did you mean to use getImg in the return JSX, because setImg would make no sense since it is a function to set the image

useState() React 钩子返回 [value, updatingFunction] = useState(&lt;initialValue&gt;)。该值可以在 JSX 中使用,但如果您想更改该值,请使用更新功能,该功能开始重新渲染周期。

【讨论】:

  • 如果这对您有用,请将其标记为正确,或发表评论,如果没有,请告诉我。我会更新我的答案并尝试为您找到解决方法。您最初共享的代码缺少右括号')'并且将getText和getImg视为一个函数,因此我根据这些修复进行了回答
  • 您好,感谢您的更新。我尝试在我的 Web 应用程序中根据您的进行编辑,但问题仍然存在。我忘记在底部添加img标签了,但是图像仍然没有出现。
  • 你改成getImg了吗?
  • 我的 API img 返回 img 文件路径。
  • 是的,我把它改成
猜你喜欢
  • 2022-06-10
  • 2012-03-12
  • 2013-02-10
  • 2021-06-09
  • 2015-09-16
  • 2020-01-12
  • 2018-10-24
  • 1970-01-01
  • 2019-01-05
相关资源
最近更新 更多