Vuejs- if..else 语句中未达到第二个 axios.get
Posted
技术标签:
【中文标题】Vuejs- if..else 语句中未达到第二个 axios.get【英文标题】:Vuejs- Second axios.get not reached in if..else statement 【发布时间】:2021-08-10 12:25:23 【问题描述】:所以我有这个 vue,它从另一个 vue 获取 id 和 user_type 。我有两种用户类型:fr 和 en 都有自己的 get 请求来获取正确的数据。这就是我传递它们的方式:
const click = (record) =>
router.push(
name:'details' , params:id:record.id,user_type:record.user_type,
)
现在在我的名为“details”的新 vue 文件中,我这样做了:
let id =route.params.id
let user_type=route.params.user_type
onMounted(async () =>
if(user_type="fr")
await axios
.get('/lang/DetailFR/'+id)
.then((res) =>
dataSource.value = res.data
console.log( "here",dataSource.value )
)
.catch((err) => console.log(err))
else if (user_type="en")
await axios
.get('/lang/DetailFEN/'+id)
.then((res) =>
dataSource.value = res.data
console.log( "where",dataSource.value )
)
.catch((err) => console.log(err))
)
所以当它是 user_type=fr 时它工作正常我在控制台中使用“here”消息获取数据但是如果我的 user_type 是 =en 我在控制台中得到的是“here”而不是“where”并且没有数据明显显示所以“if else”不起作用,我不知道为什么。 PS:如果我只使用 user_type=en 我得到正确的工作请求和显示的“什么”味精,所以问题出在 if..else 或其他东西上。 有什么帮助吗?
【问题讨论】:
【参考方案1】:user_type==="fr"
而不是user_type="fr"
【讨论】:
user_type="fr" 工作正常,当我的用户类型为 en 时,它应该运行 else if 部分,但它没有运行 if 语句。 我希望这不是您的实际代码。user_type="fr"
不是比较表达式,而是赋值
是的,这是真的,但很奇怪,因为它可以与 user_type="fr"
一起使用,但它 === 它不...
那么你需要检查user_type的真正价值是什么。 if (user_type="fr")
起作用的原因是因为 js 中的赋值将返回分配的值,因此您实际上是在执行 if ("fr")
。 js中的非空字符串被认为是真的
检查为什么它是未定义的?应该在哪里提供价值?那里的价值? user_type:[record.id].user_type
为什么会有[ ]
?以上是关于Vuejs- if..else 语句中未达到第二个 axios.get的主要内容,如果未能解决你的问题,请参考以下文章