picker数据不同步

发布于 6 年前作者 zhongyan6685 次浏览最后编辑 6 年前来自 ask
  • 需求的场景描述(希望解决的问题)

我想通过点击picker传递城市id,js通过城市id查找出对应的县区,并且渲染到picker的range中,但是我的数据不同步,每次要点第二下picker,县区才能显示出来。很明显第一次数据已经获取到了,但是没渲染,,请大佬帮忙看看。如果picker有个方法可以直接调用就更方便了,当数据得到时在打开picker

<view class=“cityChoose”>

<text class=“chooseCity_title”>城市名</text>

<view class=“cityChooseList” wx:for={{cityData}} wx:key={{index}} wx:for-item=“letterItem”>

<view class=“cityList”>

<text class=“letterItem”>{{letterItem.letter}}</text>

<picker class=“cityItem” wx:for={{letterItem.citys}} wx:key={{index}} wx:for-item=“cityItem” data-cityid={{cityItem.id}} bindtap=“chooseDistrict” mode=“selector” range={{districtList}} value={{index}} range-key={{‘fullname’}} bindchange=“bindDistrictChange”>

{{cityItem.cityName}}

</picker>

</view>

</view>

</view>

//点击城市事件

chooseDistrict: function (e) {

let that = this;

//console.log(e.target.dataset.cityid);

qqmapsdk.getDistrictByCityId({

id: e.target.dataset.cityid,

success: function (res) {

//console.log(res);

that.setData({

districtList: res.result[0]

})

},

fail: function (error) {

console.error(error);

}

})

},

1 回复
cxiao
cxiao1 楼4 年前

应该是你第一次点击的时候请求接口 数据还没返回就显示了picker