【发布时间】:2021-12-13 14:50:18
【问题描述】:
我似乎无法在 javascript 中将此 API 调用的值返回给我的反应组件。我有一个调用 API 的 java 脚本文件。在js文件中,返回结果但是当我在我的react组件中调用useEffect中的js函数时,它返回undefined。
export function ordersData() {
const partner_code = localStorage.getItem('partner_code')
let items = []
let data = []
let isLoaded = false
let error = ''
fetch('xxxxxxxxxxxx' + process.env.REACT_API)
.then(res => res.json())
.then((result) => {
for (let instance in result['docs']) {
let payload = (result['docs'][instance])
payload.id = instance
payload.timestamp = shortMonthYear(payload.timestamp)
data.push(payload)
}
items = data.reverse()
}, (err) => {
isLoaded(true)
error(err)
})
}
这是我的矩形组件
导出默认函数 OrdersChart() {
const [payload, setPayload] = useState([])
const [error, setError] = useState(null);
const [isLoaded, setIsLoaded] = useState(false);
const [items, setItems] = useState([]);
useEffect(() => {
setPayload = ordersData()
console.log(payload)
}, [])
........
变量payload为空
【问题讨论】:
-
API 调用是异步的。要获得价值,您应该在 Promise 上使用 .then。所以它将是
ordersData().then(payload => console.log(payload))。您还应该从 ordersData 函数返回 fetch。
标签: javascript reactjs api fetch