【发布时间】:2021-01-31 02:16:56
【问题描述】:
我是 react 的初学者,我正在从 https://www.boredapi.com/documentation#endpoints-price 获取数据。使用http://www.boredapi.com/api/activity/,您会得到一个格式为
{
"activity": "Learn Express.js",
"accessibility": 0.25,
"type": "education",
"participants": 1,
"price": 0.1,
"link": "https://expressjs.com/",
"key": "3943506"
}
我正在尝试使用反应钩子获取其中的 10 个对象,然后显示它们。但是,当我尝试获取并显示单个活动名称时,使用下面的代码没有任何反应。我用钩子初始化了一个数组,我想每次获取时都附加一个新对象
使用Fetch.js 获取活动
import {useState , useEffect} from 'react';
export default function useFetch(){
const [activities,setActivities] = useState([]);
const getActivities = async () =>{
for(let k=0;k<10;k++){
let response = await fetch("http://www.boredapi.com/api/activity/");
let result = await response.json();
setActivities((oldstate)=>[...oldstate,result])
}
}
useEffect(()=>{
getActivities();
}, [])
return {activities};
}
AcitivityBar.js 显示活动
import React from 'react';
import useFetch from './useFetch';
export default function ActivityBar(){
const {activities} = useFetch();
console.log(activities)
return (
<div className="activities-container">
{
(activities.map((a , index)=>{
return <h1 key = {index}>hi</h1>
}))
}
</div>
);
}
【问题讨论】:
标签: reactjs api react-hooks