收藏
回答

Component组件怎么赋值data?

我现在有这么一个功能,卡着了,各位大神帮忙看一下:

var index = [0,0,0]
var AreaJson = [];
var provinces = [];
var citys = [];
var areas = [];

var http = require('../../utils/request.js');
http.post('/food/type/address/list', {
  data:{}, 
}).then(res => {
  debugger
  var that = this;
  AreaJson = res
  var provincese = [];
      for (var i = 0; i < AreaJson.length;i++){
        provincese.push(AreaJson[i].name);
      }
        provinces = provincese  //我要将provincese 赋值给data的中的provinces
      console.log(provinces)
  var citysd = [];
    for (var i = 0; i < AreaJson[0].city.length;i++){
      citysd.push(AreaJson[0].city[i].name);
    }
      citys = citysd

  var areasd = [];
    areasd = AreaJson[0].city[1].area;
      areas = areasd

}).catch(err => {
  console.log(err)
})
Component({

  properties: {
  },

  data: {
    provinces: provinces,  //这个值就是上面Component外调用后台接口返回的值
    citys: citys,
    areas: areas,
    value:[0,0,0],
    province: '北京市',
    city: '北京市',
    area: '东城区'
  },
  /**
   * 组件的方法列表
   */
  methods: {
  },
})

我要将上面http.post,后台返回的数据赋值给data中provinces 和 citys 和 areas,但是不知道这个Component怎么初始化的,将调用后台的post写到Component里面任何地方都不行,只能写到外面才会执行。但是写到外面,后台获取结果之后,结果怎么赋值给给data参数。用this.setData也不管用。

大佬有啥办法


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

2 个回答

  • brave
    brave
    2020-08-01
    Component({
      created () {
        // 执行请求,请求成功进行赋值
        this.setData({
          provinces: res.data.data
        })
      }
    })
    
    // 或者是在父页面请求完传值
    <compoentA provinces="{{provinces}}" />
    
    2020-08-01
    有用 1
    回复 2
    • .
      .
      2020-08-01
      created 它不走这个
      2020-08-01
      回复
    • brave
      brave
      2020-08-02回复.
      直接在父组件页面传值,一般不会再组件里请求接口的
      2020-08-02
      回复
  • 君安🐝
    君安🐝
    2020-09-14

    你好,我今天也遇到了这个赋值问题,请问你现在有解决这个问题吗?

    2020-09-14
    有用
    回复
登录 后发表内容
问题标签