这是我的第一个React应用,我正在尝试使用axios来获取API。
可以根据值更改URL。
我的代码是
fetchURL(page,checked) {
if(checked)
{
const apiUrl = 'firstApiURL'
}
else {
const apiUrl = 'secondApiURL';
}
axios.get(apiUrl)......
}
它说apiUrl是未定义的。
我认为根据另一个变量来更改API网址会很容易。
我们非常感谢您的帮助。
答案 0 :(得分:4)
常量的作用域仅限于声明它们的块(在分别与if([FIRApp defaultApp] == nil){
[FIRApp configure];
}
和{
关联的}
和if
之间)范围。
在块外定义一个变量并使用它。
else
然后您可以使用默认值代替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)......
}
const
答案 1 :(得分:3)
在您的代码中,const
是在{}
的块范围内定义的,因此它们在外部未定义。
使用let
,以便您可以对其进行分配,并在if
/ else
之外声明它
let apiUrl;
if (checked) {
apiUrl = 'firstApiURL'
} else {
apiUrl = 'secondApiURL';
}
axios.get(apiUrl)......
}
有关块语句和作用域的更多信息,请阅读https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/statements/block
答案 2 :(得分:1)
const
关键字创建常量,该常量仅在创建它们的块中存在(let
和const
单词创建块范围变量)。
if() { }
和else { }
是我们创建的apiUrl
的块,并且“ apiUrl在它们外部不存在。
您可以在let
和if
之外编写else
变量,然后向其中写入一些值。例如:
fetchURL(page,checked) {
let apiUrl;
if(checked)
{
apiUrl = 'firstApiURL'
}
else {
apiUrl = 'secondApiURL';
}
axios.get(apiUrl)......
}