我想从api获取数据,并将其设置为一种状态,然后在map中使用它进行迭代
const result = await API.getSearch(data);
if(result.status === 200){
this.setState({data: result.data, loading: false })
}
const result = await API.getSearch(data); // got data successfully
然后:
this.state.data && this.state.data.length > 0 && this.state.data.data.map(function(value, i){
我知道这种错误的意思是,map没有得到任何数据,所以我使用了条件,首先我检查状态是否返回了数据,然后检查数据是否具有长度,但是仍然收到此错误。任何解决方案吗?
答案 0 :(得分:1)
我猜不是这个
this.state.data.data.map(function(value, i){
应该只有一次数据
this.state.data.map(function(value, i){
答案 1 :(得分:1)
好像您尚未初始化data
。
因此,在第一次渲染期间,它是undefined
。
在undefined
上,map
不存在。导致此问题。
像下面这样声明并定义data
this.state = {
data: []
}
OR
constructor(props) {
this.state = {
data: []
}
}
答案 2 :(得分:0)
使用解构具有默认值,并确保内部data
是数组
const { data : { data = [] } = {} } = { data: { data: ['foo', 'bar']} } ;
console.log(data.map(x => x + "--").join());