无法动态设定地区类型的piker组建默认值
发布于 5 年前 作者 ming93 9195 次浏览 来自 官方Issues

https://developers.weixin.qq.com/miniprogram/dev/component/picker.html

__微信开发者工具版本号:__Stable v1.02.1911180

背景说明:

假定页面为个人资料页(profile.js,profile.json,profile.wxss,profile.wxml四个文件),里有picker选择所在城市

需求:

从服务器取回上次设定的地区并将该地区设定为picker拉起时显示的选项。比如用户上一次选定的是“广东省中山市板芙镇”,那么用户再次进入时打开的picker要求显示选中“广东省中山市板芙镇”。

更多信息:

//profile.js
Page({
data:{
    iregion:['广东省','中山市','板芙镇'],//在这里名列式写出,且必须用单引号可以按预期的效果显示
},
onLoad:function(options){
    //var profile=从服务器动态获取回来的
    this.setData({
        iregion:profile.region    //这种方式没有按预期的显示,打开始终显示的是北京市
    });
}
});

//profile.wxml
<picker mode="region" bindchange="changeRegion" value="{{iregion}}"></picker>
//查看渲染后的wxml代码,明列式输出的是单引号的,即value="['广东省','中山市','板芙镇']"
//而动态设置的则是双引号的,即value="["广东省","中山市","板芙镇"]"
// 
// 所以,失败的原因是小程序渲染时输出的双引号导致value属性失效所致。
//
// 本人是第一次认真做小程序,发现小问题不少。例如,扩展组件uploader上传多图成功后状态更新的问题,你们官方的示例代码就不能认真点?!
// 为什么有那么多地方的文档、示例代码不是没有就是残缺!需要开发者大量尝试才能搞清楚你们的东西!你们是大厂,搞得我都有点鄙视你们!
2 回复

再补充一点,直接写一个数组在value也是没有生效的

回到顶部