api 请求中不接受 REACT.js 变量

Posted

技术标签:

【中文标题】api 请求中不接受 REACT.js 变量【英文标题】:REACT.js variables not accepted in api request 【发布时间】:2021-02-25 21:49:28 【问题描述】:

我正在尝试通过在我的请求和 console.log 中添加变量来提高我的代码效率和可重用性。但由于某种原因它不起作用,我不知道为什么!完整代码见:https://codesandbox.io/s/wispy-lake-6h051

这行得通:

  state = 
    lastWeek: '2020-11-09',
    today: '2020-11-12',
    selectedBase: 'USD',
    firstDateValues: null,
    fifthDateValues: null
  ;

  getAPI = async() => 
    const START_DATE = this.state.lastWeek;
    const END_DATE = this.state.today;
    const BASE = this.state.selectedBase;
    
    const response = await fixer.get(`?start_at=$START_DATE&end_at=$END_DATE&base=$BASE`, 
    );
    console.log(BASE) ---> output: USD
    console.log(response.data.rates[START_DATE].USD) --> correct data


但这不是:

  state = 
    lastWeek: '2020-11-09',
    today: '2020-11-12',
    selectedBase: 'USD',
    firstDateValues: null,
    fifthDateValues: null
  ;

  getAPI = async() => 
    const START_DATE = this.state.lastWeek;
    const END_DATE = this.state.today;
    const BASE = this.state.selectedBase;
    
    const response = await fixer.get(`?start_at=$START_DATE&end_at=$END_DATE&base=$BASE`, 
    );
    console.log(BASE) ---> output: USD
    console.log(response.data.rates[START_DATE].BASE) --> output: undefined 


为什么?

【问题讨论】:

这能回答你的问题吗? Add a property to a javascript object using a variable as the name? 【参考方案1】:

你需要做的就是改变

response.data.rates[START_DATE].BASE

esponse.data.rates[START_DATE][BASE]

因为如果您使用.BASE,则表示BASE 密钥,而不是来自BASE 变量的密钥

【讨论】:

以上是关于api 请求中不接受 REACT.js 变量的主要内容,如果未能解决你的问题,请参考以下文章

React.js 和 Typescript 返回获取 API 响应的类型?

http-proxy-middleware 代理在 React js 和 Spring Boot 项目中不起作用。 GET API 返回 415 状态错误

Flux+React.js - 缓存 API 请求响应

Node.js 之react.js组件-JSX简介

TypeError:无法读取未定义的属性(读取“地图”),以及 React.js 中的多个 API 请求

React JS - 如何将变量(参数)传递给 API URL?