Javascript 无法从API获取访问对象的属性
我试图通过使用React,特别是使用hook,从数据库中获取某些数据。我的代码片段如下所示:Javascript 无法从API获取访问对象的属性,javascript,reactjs,react-hooks,Javascript,Reactjs,React Hooks,我试图通过使用React,特别是使用hook,从数据库中获取某些数据。我的代码片段如下所示: import React from "react" const TodayWeather = (props) => { return ( <div className={"today-weather"}> <h3>Today in {props.name}</h3> {console.l
import React from "react"
const TodayWeather = (props) => {
return (
<div className={"today-weather"}>
<h3>Today in {props.name}</h3>
{console.log("props ", props)}
</div>
)
}
export default TodayWeather
App.js
useEffect(() => {
fetchWeather()
}, [])
const fetchWeather = async () => {
const dataOneDay = await fetch(
`https://api.openweathermap.org/data/2.5/weather?q=London,uk&appid=${API_KEY}&units=metric`
)
const singleDayData = await dataOneDay.json()
setSingleDayData(singleDayData)
setIsLoading(false)
console.log(singleDayData)
}
console.log(isLoading)
return (
<div className={"weather-container"}>
<img src={logo} alt={"Logo"} />
{isLoading === false && <TodayWeather singleDayData={singleDayData} />}
<h2>{singleDayData.name}</h2>
</div>
)
useffect(()=>{
天气预报
}, [])
const fetchWeather=async()=>{
const dataOneDay=等待获取(
`https://api.openweathermap.org/data/2.5/weather?q=London,uk&appid=${API_KEY}&units=metric`
)
const singleDayData=await dataOneDay.json()
设置singleDayData(singleDayData)
setIsLoading(错误)
console.log(singleDayData)
}
console.log(isLoading)
返回(
{isLoading==false&&}
{singleDayData.name}
)
在上面的代码中,singleDayData.name属性按其应有的方式显示(即“London”-有关完整的对象详细信息,请参见下面的屏幕截图)
TodayWeather.js
useEffect(() => {
fetchWeather()
}, [])
const fetchWeather = async () => {
const dataOneDay = await fetch(
`https://api.openweathermap.org/data/2.5/weather?q=London,uk&appid=${API_KEY}&units=metric`
)
const singleDayData = await dataOneDay.json()
setSingleDayData(singleDayData)
setIsLoading(false)
console.log(singleDayData)
}
console.log(isLoading)
return (
<div className={"weather-container"}>
<img src={logo} alt={"Logo"} />
{isLoading === false && <TodayWeather singleDayData={singleDayData} />}
<h2>{singleDayData.name}</h2>
</div>
)
我有另一个文件,试图在其中显示数据,代码如下所示:
import React from "react"
const TodayWeather = (props) => {
return (
<div className={"today-weather"}>
<h3>Today in {props.name}</h3>
{console.log("props ", props)}
</div>
)
}
export default TodayWeather
从“React”导入React
const TodayWeather=(道具)=>{
返回(
今天在{props.name}
{console.log(“props”,props)}
)
}
导出默认的TodayWeather
{console.log(“props”,props)}
完整显示对象。但是,由于某些奇怪的原因,没有显示name属性
从API返回的对象如下所示
您将
singleDayData
作为道具传递给TodayWeather
您需要通过props.singleDayData.main.temp或props对象参数中的destructsingleDayData
来访问它
另外,如果您只是从功能组件返回JSX,您可以省略返回并将其包装在()
consttodayweather=({singleDayData})=>(
今天在{singleDayData.name}
{singleDayData.main.temp}
);