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的主要内容,如果未能解决你的问题,请参考以下文章

if else 逻辑关系问题

arttemplate if else 能不能嵌套

0003输出语句分支结构 if else 随机数

64 个嵌套的 If/Else 语句是不是不好?

SQL Server判断语句(IF ELSE/CASE WHEN )

Python Selenium:使用 css,我如何制作 if else 语句?