如何将消耗的API响应发送到另一个组件?

基桑·库玛瓦

我正在使用Weatherbit API进行网络分析。我在App.js文件中使用API​​响应,然后将其保存到一个状态,然后将该状态传递给另一个组件。但是该组件正在获取该状态的初始值(空对象),而不是API响应。查看下面的代码。

function App() {

  const [details, setDetails] = useState({ "value": "First" })
  const [url, setUrl] = useState("")

  const fetchWeather = async () => {
    const { data } = await Axios.get(`https://api.weatherbit.io/v2.0/current?city=Modasa&key=24d74085081e4ec7b4971bec0a1f2ef3`)

    // const details = data.data[0]
    console.log(data)
    setDetails(data)
  }

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

  return (
    <div className="App">
      <SectionOne data={details} />
    </div>
  );

}

export default App;

**以及我获取初始值的第二个组件(空对象)**

const SectionOne = ({ data }) => {

  return (
    <div>

      <div className="sectionOne">
        <span className="region">{`${data.data[0].city_name}`}</span>
        <span className="country">{data.data[0].country_code}</span>
      </div>

      <div className="sectionTwo">
        <span className="icon"><img source={data.data[0].weather?.icon} /></span>
        <span className="temp">{data.data[0].temp}</span>
        <span className="unit">°C</span>
        <span className="feels">Feels Like {data.data[0].app_temp} °C | {data.data[0].weather?.description}</span>
      </div>

      <div className="sectionThree">
        <div><span>Wind</span>{data.data[0].wind_spd} KM</div>
        <div><span>Wind Dir.</span>{data.data[0].wind_cdir}</div>
        <div><span>Humidity</span>{data.data[0].current?.humidity} %</div>
        <div><span>Pressure</span>{data.data[0].pres} MB</div>
        <div><span>UV Index</span>{data.data[0].uv}</div>
        <div><span>Visibility</span>{data.data[0].vis} KM</div>
      </div>

    </div>
  )
}

export default SectionOne
尼罗什帕特尔

您将初始状态设置为{“ value”:“ First”},但是SectionOne组件期望其他格式的数据,请尝试访问属性data.data [0] .city_name不存在。因此,您会出错。

您应该将初始状态设置为null

const [details, setDetails] = useState(null)

并在渲染中具有null值 这是最佳做法。

return (
    <div className="App">
      { details && <SectionOne data={details} /> }
    </div>
  );

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何将参数发送到另一个控制器中的 GET API

来自分类Dev

如何将.bat文件命令发送到另一个IP地址?

来自分类Dev

如何将消息发送到另一个场景

来自分类Dev

如何将数据发送到另一个Android设备

来自分类Dev

如何将UIPickerView选定的行发送到另一个ViewController

来自分类Dev

如何将数据从表单发送到另一个页面?

来自分类Dev

如何将Flask中的数据发送到另一个页面?

来自分类Dev

如何将泛型T发送到另一个线程?

来自分类Dev

如何将String [] imageUrl发送到另一个活动

来自分类Dev

Javascript:如何将值从列表发送到另一个

来自分类Dev

Android如何将Bundle发送到另一个Activity?

来自分类Dev

Android_如何将Bundle发送到另一个活动?

来自分类Dev

如何将数据发送到另一个基因剔除模型?

来自分类Dev

如何将数据发送到另一个程序并获得答案?

来自分类Dev

如何将表单中的列表发送到另一个表单

来自分类Dev

如何将html数据发送到另一个php页面

来自分类Dev

Fiddler脚本-如何将响应发送到另一台服务器?

来自分类Dev

如何将字符串从一个活动发送到另一个活动?

来自分类Dev

如何将数据从一个片段发送到另一个片段?

来自分类Dev

如何将数据从一个ejs文件发送到另一个

来自分类Dev

如何将参数从一个函数发送到另一个函数

来自分类Dev

如何将一个活动的类对象类型的ArrayList发送到另一个活动?

来自分类Dev

如何将一个回调方法发送到另一个回调方法

来自分类Dev

如何将一个灰色日志收到的日志发送到另一个灰色日志?

来自分类Dev

如何将一个 viewController 中的图像数据发送到另一个 viewController?

来自分类Dev

如何将数组从一个活动(意图)发送到另一个?

来自分类Dev

单击确定按钮后,数据应发送到另一个窗口

来自分类Dev

从一个 Vue 组件发送到另一个组件的数据仍然是响应式的

来自分类Dev

将变量发送到另一个组件(可观察的)

Related 相关文章

  1. 1

    如何将参数发送到另一个控制器中的 GET API

  2. 2

    如何将.bat文件命令发送到另一个IP地址?

  3. 3

    如何将消息发送到另一个场景

  4. 4

    如何将数据发送到另一个Android设备

  5. 5

    如何将UIPickerView选定的行发送到另一个ViewController

  6. 6

    如何将数据从表单发送到另一个页面?

  7. 7

    如何将Flask中的数据发送到另一个页面?

  8. 8

    如何将泛型T发送到另一个线程?

  9. 9

    如何将String [] imageUrl发送到另一个活动

  10. 10

    Javascript:如何将值从列表发送到另一个

  11. 11

    Android如何将Bundle发送到另一个Activity?

  12. 12

    Android_如何将Bundle发送到另一个活动?

  13. 13

    如何将数据发送到另一个基因剔除模型?

  14. 14

    如何将数据发送到另一个程序并获得答案?

  15. 15

    如何将表单中的列表发送到另一个表单

  16. 16

    如何将html数据发送到另一个php页面

  17. 17

    Fiddler脚本-如何将响应发送到另一台服务器?

  18. 18

    如何将字符串从一个活动发送到另一个活动?

  19. 19

    如何将数据从一个片段发送到另一个片段?

  20. 20

    如何将数据从一个ejs文件发送到另一个

  21. 21

    如何将参数从一个函数发送到另一个函数

  22. 22

    如何将一个活动的类对象类型的ArrayList发送到另一个活动?

  23. 23

    如何将一个回调方法发送到另一个回调方法

  24. 24

    如何将一个灰色日志收到的日志发送到另一个灰色日志?

  25. 25

    如何将一个 viewController 中的图像数据发送到另一个 viewController?

  26. 26

    如何将数组从一个活动(意图)发送到另一个?

  27. 27

    单击确定按钮后,数据应发送到另一个窗口

  28. 28

    从一个 Vue 组件发送到另一个组件的数据仍然是响应式的

  29. 29

    将变量发送到另一个组件(可观察的)

热门标签

归档