我在React组件上有这个函数,它从AWS API获取数据并在对象上返回它。
我尝试将对象中接收到的数据转换为数组。
获取数据的函数是listUsers
。
然后我使用push方法。但是不管我做什么,如果我从data
或array
记录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是一个对象。
只有-null
、undefined
、strings
、numbers
、boolean
、symbols
不是对象。
你检查错了。您应该使用array instance of Array
来确认它是否是数组类型。