javascript - react js中如何根据id依次显示一个api的数据?
问题描述
所以基本上我想要做的是使用 axios 从一个 api 获取数据,例如 Q1 你的名字是什么(用户回答它然后单击下一步) Next Q2 你的爱好是什么(用户回答它然后单击下一步) 比 Q3、4、5、6 等我想显示来自 api 的有限数量的数据,该 api 由 63 个问题组成。我想建立一个问题,在用户回答前一个问题后显示问题。
我的代码是
import React, { Component } from 'react';
import Axios from 'axios'
import ReactDOM from "react-dom";
class Questionare extends Component {
state = {
items: []
};
componentDidMount() {
Axios.get('http://leaty-dev.azurewebsites.net/')
.then(response => {
console.log(response);
this.setState({ items: response.data.result.items });
})
.catch(error => {
console.log(error);
});
}
render() {
const { items } = this.state;
return (
<div>
<button className="btn" >Click</button>
<ul>
{items.map(item => (
<li key={item.id}>{item.pqDetail}</li>
))}
</ul>
</div>
)
}
}
export default Questionare;
解决方案
在您的状态中存储索引:
state = {
items: [],
index: 0
};
在您的按钮onClick
功能内setState
,我假设您有一个来存储用户的答案,添加行index: this.state.index + 1
.
内部render
存储index
到一个变量:const index = this.state.index;
而不是使用.map
你呈现这样的问题:
<ul>
<li key={items[index].id}>
{items[index].pqDetail}
</li>
</ul>
推荐阅读
- c++ - 在 Linux 中从 C++ mongocloud 调用 mongofiles
- php - Laravel Relational Eloquent 急切加载如何获取最新的 5 位评论者用户信息
- c# - 根据权限从 Web API 返回属性?
- r - 为什么我在我的 R 代码中的子分配类型修复中出现错误:不兼容的类型(从 S4 到双精度)?
- c# - 如何组合 IEnumerable 的不同值?
- javascript - 传递一个返回数组作为参数的函数
- javascript - JQuery append() 信息即使在硬刷新后仍然存在
- agile - 如何管理需要多个 Sprint 的用户故事
- javascript - 在页面内注入书签后,$ 不是函数错误
- javascript - 从 JavaScript 中的另一个函数访问一个函数内部的 var