【问题标题】:REACT.js variables not accepted in api requestapi 请求中不接受 REACT.js 变量
【发布时间】: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 
}

为什么?

【问题讨论】:

标签: javascript reactjs api api-design react-state


【解决方案1】:

你需要做的就是改变

response.data.rates[START_DATE].BASE

esponse.data.rates[START_DATE][BASE]

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-08-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-02
    • 2018-11-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多