- 需求的场景描述(希望解决的问题)
我想通过点击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);
}
})
},
应该是你第一次点击的时候请求接口 数据还没返回就显示了picker