尝试使用'push'到空数组的对象条目中创建一个数组。根本行不通



我在React组件上有这个函数,它从AWS API获取数据并在对象上返回它。

我尝试将对象中接收到的数据转换为数组。

获取数据的函数是listUsers

然后我使用push方法。但是不管我做什么,如果我从dataarray记录typeof,它继续返回一个对象。

完整代码:

import { Auth, API } from 'aws-amplify'
import { useState, useEffect } from 'react'
export default function Users() {
const listUsers = async () => {
const apiName = 'AdminQueries'
const path = '/listUsers'
const params = {
headers: {
'Content-Type': 'application/json',
Authorization: `${(await Auth.currentSession())
.getAccessToken()
.getJwtToken()}`,
},
}
return await API.get(apiName, path, params)
}
const usersArray = async () => {
const response = await listUsers()
var array = []
for (const item of response.Users) {
array.push(item)
}
setData(array)
console.log(array)
console.log(typeof array)
}
useEffect(() => usersArray(), [])
return <></>
}

事情是我需要它成为一个数组,因为我需要使用Map使组件以我想要的方式呈现数据。

提示吗?

几乎所有的JavaScript是一个对象。

只有-nullundefinedstringsnumbersbooleansymbols不是对象。

你检查错了。您应该使用array instance of Array来确认它是否是数组类型。

最新更新