json 我不能得到我的狗API可以有人请帮助吗?我是react的新手,无论我做什么都没有帮助,图片不会出现在屏幕上[关闭]

jum4pzuy  于 2023-06-07  发布在  React
关注(0)|答案(2)|浏览(587)

**关闭。**此题需要debugging details。目前不接受答复。

编辑问题以包括desired behavior, a specific problem or error, and the shortest code necessary to reproduce the problem。这将帮助其他人回答这个问题。
4天前关闭。
Improve this question

import React, { useState } from 'react'
import './App.css'

function Dog(data) {
    const [url, setUrl] = useState('')

    function fecth_data() {
        fetch('https://dog.ceo/api/breeds/image/random')
            .then((res) => res.json())
            .then((data) => setUrl(data))
        console.log(data)
    }
    return (
        <div className="dog-main">
            <img src={url} className="dog-random" alt="a dog" />
            <button className="dog-btn" onClick={fecth_data}>
                {' '}
                Generate!{' '}
            </button>
        </div>
    )
}

export default Dog

我不能得到我的狗API可以有人请帮助吗?我是新的React,无论我做什么,它没有帮助。画面不会出现在屏幕上

yqlxgs2m

yqlxgs2m1#

你的API端点返回了一个json对象,它的键是messagestatus,你将src设置为这个值,而<url>标签并不理解。它需要一个字符串,因此您可以获取该返回对象并将url设置为返回的data.message

import React, { useState } from 'react'

function Dog(data) {
    const [url, setUrl] = useState('')

    function fetch_data() {
        fetch('https://dog.ceo/api/breeds/image/random')
            .then((res) => res.json())
            .then((data) => {
        console.log(data)
              setUrl(data.message)
            })
    }
    return (
        <div className="dog-main">
            <img src={url} className="dog-random" alt="a dog" />
            <button className="dog-btn" onClick={fetch_data}>
                Generate!
            </button>
        </div>
    )
}

export default Dog
0ve6wy6x

0ve6wy6x2#

你需要在useEffect中调用fecth_data()。

useEffect(() => {
    fecth_data()
  }, [])

相关问题