Reactjs 如何显示我从 api 获取的数组数据?
2021-02-12
4068
我是 React 的新手,我正在尝试在我的应用程序中显示从数组中获取的数据。我使用 axios 发出获取请求,响应显示了一个数组。我尝试按照在互联网上找到的教程来显示这个数组,但没有成功。你能检查我的代码并告诉我哪里出了问题吗?如果我的代码完全错误,你能建议我一种显示数组的方法吗?提前谢谢了
class Dashboard extends Component {
state = { data: [] };
static propTypes = {
history: PropTypes.object.isRequired,
}
constructor(props) {
super(props);
}
getAllLibri = async () => {
let JWTToken = localStorage.getItem("token");
const response = axios
.get("http://g0ptrkwkej5fhqfl.myfritz.net:8090/api/libri/getAll", {
headers: { Authorization: `${JWTToken}` },
})
.then((response) => {
console.log(response.data);
console.log(JWTToken);
this.setState({ data: response.data });
})
.catch((error) => console.error(`Error: ${error}`));
}
render() {
return (
<Navbar bg="light" expand="lg">
<Navbar.Brand href="#home">Benvenuto!</Navbar.Brand>
<Navbar.Toggle aria-controls="basic-navbar-nav" />
<Navbar.Collapse id="basic-navbar-nav">
<Nav className="mr-auto">
<Nav.Link href="">Inserisci libro</Nav.Link>
<NavDropdown title="Libri" id="basic-nav-dropdown">
<NavDropdown.Item onClick={this.getAllLibri} href="#action/3.1">
Visualizza libri
<div>{this.state.data.length}</div>
</NavDropdown.Item>
</NavDropdown>
</Nav>
<Form inline>
<Button onClick={this.doLogout} variant="outline-success">
Logout
</Button>
</Form>
</Navbar.Collapse>
</Navbar>)
}
}
这是我从获取请求中获取的数组数据
1个回答
获取数据后,您将获得一个普通数组。您可以使用一些数组方法,例如 map:
{ data.map((item, index) => { return( <div key={index+1}>{item.value}</div> ) } ) }
此代码生成与数组中的项目一样多的
<div>{item.value}</div>
。
map()
是一个数组方法,它接收一个应用于数组中每个元素的函数,并返回新数组中的新元素,请参阅
this
。此例中的函数接收一个
item
,并在
div
元素中返回
item.value
。如注释中所述,您还需要传递一个 key prop(从 1 开始)。React 使用此值来识别组件,并在更改后检查是否必须重新渲染它。我使用
index
作为地图回调的参数,但您也可以使用类似
item.id
的东西。
SePeF
2021-02-12