【发布时间】:2021-03-11 19:27:49
【问题描述】:
使用 axios 从 api 获取数据,然后尝试映射值并将它们显示在不同的组件中。
App.tsx
import React, { useState, useEffect } from 'react';
import JobBoardComponent from './components/JobBoardComponent';
import axios from 'axios';
function App(): JSX.Element {
const[jobs, setJobs] = useState<any>([]);
useEffect((): void => {
const fetchJobs = async () => {
const res = await axios('http://localhost:5000/jobs');
setJobs(res.data);
};
fetchJobs();
}, []);
return (
<div className="App">
{jobs.map((job: any) => <JobBoardComponent job={job} key={job.id} />)}
</div>
);
}
export default App;
JobBoardComponent.tsx
import React from 'react'
function JobBoardComponent( job: any, key: any){
return (
<div>
<h1>{ job }</h1>
</div>
)
}
export default JobBoardComponent;
看起来 API 正在运行。
我正在关注本教程https://www.youtube.com/watch?v=JZQ8m08cbF0,但我决定制作自己的 API,但现在它不起作用。
【问题讨论】:
-
有状态的
jobs变量的结构是什么? -
我不知道你所说的有状态作业结构是什么意思,但如果你指的是 json 数据的结构,那么结构是这样的 ....{ "id": 1, "company": " Photosnap”,“logo”:“./images/photosnap.svg”,“new”:true,“featured”:true,“position”:“高级前端开发人员”,“role”:“Frontend”,“level” : "Senior", "postedAt": "1d ago", "contract": "Full Time", "location": "USA Only", "languages": ["HTML", "CSS", "JavaScript"], "工具": [] },
-
你没有正确传递道具,JobBoardComponent( {job: any, key: any})
标签: json reactjs typescript async-await axios