picker数据不同步
发布于 5 年前 作者 zhongyan 6551 次浏览 来自 问答
  • 需求的场景描述(希望解决的问题)

我想通过点击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 回复

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

回到顶部