根据 ReactJS 中的值更改 axios get url

这是我的第一个 React 应用程序,我正在尝试使用 axios 获取 API。


可以根据值更改 URL。


我的代码是


fetchURL(page,checked) {

  if(checked)

  {

     const apiUrl = 'firstApiURL'

  }

  else {

     const apiUrl = 'secondApiURL';

  }

   axios.get(apiUrl)......

}

它说 apiUrl 未定义。


我认为根据另一个变量更改 API url 会很容易。


任何帮助都受到高度赞赏。


江户川乱折腾
浏览 222回答 3
3回答

BIG阳

常量的作用域是它们声明的块(在分别与 和关联的和之间,{并且在该范围之外不可访问。}ifelse在块外定义一个变量并使用它。fetchURL(page,checked) {  let apiUrl;  if(checked)  {    apiUrl = 'firstApiURL'  }  else {    apiUrl = 'secondApiURL';  }   axios.get(apiUrl)......}然后,您可以使用默认值而不是else.fetchURL(page,checked) {  let apiUrl = 'secondApiURL';  if(checked)  {    apiUrl = 'firstApiURL'  }  axios.get(apiUrl)......}或者进一步简化并仍然使用 constfetchURL(page, checked) {  const apiUrl = checked ? 'firstApiURL' : 'secondApiURL';  axios.get(apiUrl);}

明月笑刀无情

在您的代码中,const它们在块范围内定义,{}因此它们在外部未定义。使用let以便您可以分配给它,并在if/之外声明它elselet apiUrl;if (checked) {  apiUrl = 'firstApiURL'} else {  apiUrl = 'secondApiURL';}axios.get(apiUrl)......}有关块语句和范围的更多信息,请阅读https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/statements/block

烙印99

const关键字 create 常量仅存在于创建它们的块中(let而const单词创建块范围变量)。if() { }和else { }是我们创建的块apiUrl,并且 ``apiUrl 不存在于它们之外。你可以写let变量外if和else,然后写信给它一定的价值。例如:fetchURL(page,checked) {  let apiUrl;  if(checked)  {     apiUrl = 'firstApiURL'  }  else {     apiUrl = 'secondApiURL';  }   axios.get(apiUrl)......}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript