首页 > 解决方案 > 在 Fetch API 之外获取“未定义”值

问题描述

我是 react native 的新手,试图将 fetch API 响应值分配给局部变量。但外部函数显示变量的未定义值。

这是代码

const {
    diesel_data
} = this.state

let currentHMR
let previous_HMR
let previous_EstEngHours
let isViolationPass_HMR

let asset_id = diesel_data[0].diselRequisitionDetails[0].asset_id
let current_hmr = diesel_data[0].diselRequisitionDetails[0].current_hmr
let requisitionId = diesel_data[0].requisitionId

this._indicator.startActivity()
fetch(url + 'Norms/DieselHmrViolation/' + asset_id + '/' + current_hmr + '/' + requisitionId, {
    method: 'GET',
    headers: {
        'Content-Type': 'application/json',
    },
})
    .then((response) => response.json())
    .then((json) => {
        this._indicator.stopActivity()
        var list = json;
        console.log(list)
        if (!isBlank(list)) {
            currentHMR = list.currentHMR
            previous_HMR = list.previous_HMR
            previous_EstEngHours = list.previous_EstEngHours
            isViolationPass_HMR = list.isViolationPass_HMR

        }
    })
    .catch((error) => {
        console.error(error);
    });

console.log('currentHMR', currentHMR)

标签: react-nativefetch-api

解决方案


我认为你可以这样做,等到执行 fetch (也许你必须在异步函数中移动它)

let data;

await fetch('https://reqres.in/api/users/2', {
    method: 'GET',
    headers: {
        'Content-Type': 'application/json',
    }
})
    .then(res => res.json())
    .then(res => data = res)
    .catch(err => console.log(err))

console.log('data', data);

推荐阅读