【问题标题】:Conditional API call using Axios with React Hooks [duplicate]使用带有 React Hooks 的 Axios 进行条件 API 调用 [重复]
【发布时间】:2021-10-24 08:34:51
【问题描述】:

我正在尝试使用 Axios 和 React 挂钩调用 API。我想在满足某些条件时调用它。例如,如果 language 等于 'ru'、'en'、'fr' 调用第一个 API 调用,如果 language 等于 'zh'、'ko'、'ar'。下面是我的代码。

 const reqTranslate = () => {
    if(language === 'ru' || 'en' || 'de' || 'fr'  || 'tr' ||  'it' || 'es'){
      axios.all([requestTranslate, requestDictionary])
      .then(
       
          axios.spread((...responses) => {
            const responseOne = responses[0]?.data?.text[0];
            const responseTwo = responses[1]?.data?.def[0]?.tr;
            const responseThree = responses[1]?.data?.def[0]?.pos
            const responseFour = responses[1]?.data?.def[0]?.ts
            const responseFive = responses[1]?.data?.def[0]?.text
            const responseSix = responses[1]?.data?.def?.[0]?.tr
    
            // use/access the results
            console.log(responseOne, responseTwo);
            setTextresult(responseOne);
            console.log(responseOne)
            setSynTransLang(responseTwo);
            setPos(responseThree);
            setTs(responseFour);
            setTxt(responseFive)
            setMapValue(responseSix)
          })
        )
    } 
else if (language === 'ko' || 'zh'){
   axios.all([requestTranslate, requestDictionary])
  .then(axios.spread((...responses)=>{
    const responseOne = responses[0]?.data?.text[0];
   
    // use/access the results
    console.log(responseOne);
    setTextresult(responseOne);
    
   })).catch(errors => {
      // react on errors.
      console.error(errors);
    })

}}

【问题讨论】:

标签: reactjs api axios react-hooks


【解决方案1】:

如果您不喜欢 language === 'ru' || language === 'en',那么您可以这样做:

const langArr = ['ru','en','de','fr','tr','it','es'];

if (langArr.indexOf(language) > -1) {
   ...
}

【讨论】:

    猜你喜欢
    • 2021-04-19
    • 2020-01-15
    • 2020-06-13
    • 2021-11-10
    • 2020-07-13
    • 2020-02-02
    • 1970-01-01
    • 2020-08-20
    • 1970-01-01
    相关资源
    最近更新 更多