简体   繁体   English

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

[英]REACT.js variables not accepted in api request

I'm trying to make my code more efficient and reusable by adding variables on my requests and console.log.我试图通过在我的请求和 console.log 上添加变量来使我的代码更高效和可重用。 But for some reason its not working and I can't figure out why: full code can be found at: https://codesandbox.io/s/wispy-lake-6h051但由于某种原因它不起作用,我无法弄清楚原因:完整代码可在以下位置找到: https://codesandbox.io/s/wispy-lake-6h051

This works:这有效:

  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
}

But this doesn't:但这不是:

  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 
}

Why?为什么?

What you need to do is to change你需要做的是改变

response.data.rates[START_DATE].BASE

to

esponse.data.rates[START_DATE][BASE]

because if you are using .BASE , it means BASE key, not your key from BASE variable因为如果您使用的是.BASE ,则表示BASE键,而不是BASE变量中的键

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM