希希莱娜
2019-10-10 17:19
采纳率: 64.3%
浏览 657

关于vue对于传值的引用问题

我mock设定返回参数是res:[ tvmfrom:'AC',tvmto:['彩虹岛','铁皮屋','外婆饼店']]
返回的res中data里面是

data: Array(1)
0:
tvmfrom: "AC"
tvmto: Array(3)
0: "彩虹岛"
1: "铁皮屋"
2: "外婆饼店"

我想去获取tvmto里面的值
我在data(){return{里面设了 toStation:[]}}
获取的值是直接

getTvmViewParams(){
   this.$axios.params.equipments.getParams().then(res=>{
    this.tableData = res.data
    //this.tvmToStation = res.data.tvmto 错误 log显示的是未定义)
            )          
        })
    },

我理解的是data中的tvmto是一个对象,定义toStation一个数组之后遍历,作为一个个的标签放到表单中,那我怎么去拿传值

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • _鹿慕溪水 2019-10-10 17:44
    已采纳

    如果你的res返回的数据是一个数组,那么你直接用res.data.tvmto是获取不到的,应该遍历data,获取每一个数组中的tvmto对象。
    [ tvmfrom:'AC',tvmto:['彩虹岛','铁皮屋','外婆饼店']] 这是你问题中的返回示例说明,这个返回示例是错误的,正确的应该是这样{tvmfrom:'AC',tvmto:['彩虹岛','铁皮屋','外婆饼店']},这样返回的是一个object而不是一个array

    已采纳该答案
    打赏 评论
  • 广州权志龙 2019-10-11 09:55

    你也可以在data(){return{里面设了 toStation:[]}}中的 toStation:[],改为toStation:{},那么他就是一个对象,然后赋值的时候就可以接收一个数组对象
    this.tvmToStation = res.data.tvmto。试试看,我记得是可以这样传的。

    打赏 评论

相关推荐 更多相似问题