请选择 进入手机版 | 继续访问电脑版
帖子
帖子
用户
博客
课程
显示全部楼层
157
帖子
1
勋章
3581
Y币

[多端开发] picker range数据不会刷新

[复制链接]
发表于 2022-4-7 12:38:39
demo中的地址选择是可以刷新的,仿照做的,但我写的死都不会刷新


  1. <template>
  2.         <view class="list_item list_two" data-type="birthday">
  3.                 <picker class="region-picker" mode="multiSelector" range={dataset} value={selectValue}
  4.                         onChange={this.multiSelectorChange} oncolumnchange="onselectcolumnchange">
  5.                         <text>{this.props.name}:{this.props.data || "请选择"}</text>
  6.                 </picker>
  7.         </view>
  8. </template>
  9. <script>
  10. export default {
  11.         name: 'date-picker',
  12.         data() {
  13.                 return {
  14.                         dataset: [],
  15.                         selectValue: [0, 0, 0],
  16.                 }
  17.         },
  18.         methods: {
  19.                 install() {
  20.                         //年
  21.                         var year = new Date().getFullYear();
  22.                         var years = [];
  23.                         for (var i = year - 100; i <= year; i++) {
  24.                                 years.push(i);
  25.                         }
  26.                         this.data.dataset[0] = years;
  27.                         //月
  28.                         this.data.dataset[1] = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12];
  29.                         //this.data.dateDesc = this.data.dataset[0][0] + '-' + this.data.dataset[1][0] + '-' + this.data.dataset[2][0];
  30.                         //console.log(JSON.stringify(this.data.dataset));
  31.                         //初始化日
  32.                         this.data.dataset[2] = [1, 2, 3, 4, 6, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15];
  33.                 },
  34.                 multiSelectorChange(e) {
  35.                         console.log(JSON.stringify(e.detail));
  36.                         this.data.multiSelectorValue = e.detail.value;
  37.                         this.data.dateDesc = this.data.dataset[0][this.data.multiSelectorValue[0]] + '-' + this.data.dataset[1][this.data.multiSelectorValue[1]] + '-' + this.data.dataset[2][this.data.multiSelectorValue[2]];
  38.                         this.fire('change', { value: this.data.dateDesc });
  39.                 },
  40.                 onselectcolumnchange(e) {
  41.                         this.data.dataset[2] = [1, 2, 3, 4, 6, 6];
  42.                         var column = e.detail.column;
  43.                         if (column == this.data.dataset.length - 1) {
  44.                                 return;
  45.                         }
  46.                         var value = e.detail.value;
  47.                         var selectValue = this.data.selectValue;
  48.                         selectValue[column] = value;
  49.                         if (column == 0) {
  50.                                 selectValue[2] = 0;
  51.                         } else if (column == 1) {
  52.                                 selectValue[2] = 0;
  53.                         }
  54.                         this.data.selectValue = selectValue;

  55.                         if (column != 2) {
  56.                                 this.getDaysInMonth(this.data.dataset[0][value], this.data.dataset[1][selectValue[1]]);
  57.                         }


  58.                 },
  59.                 getDaysInMonth(year, month) {
  60.                         month = parseInt(month, 10); //parseInt(number,type)这个函数后面如果不跟第2个参数来表示进制的话,默认是10进制。
  61.                         var temp = new Date(year, month, 0);
  62.                         var allday = temp.getDate();
  63.                         var days = [];
  64.                         for (var i = 1; i <= allday; i++) {
  65.                                 days.push(i);
  66.                         }
  67.                         var dataset = this.data.dataset;
  68.                         dataset[2] = days;
  69.                         this.data.dataset = dataset;
  70.                         console.log(JSON.stringify(this.data.dataset))
  71.                 }

  72.         }
  73. }
  74. </script>
  75. <style scoped>
  76. .region-picker{
  77.         flex-direction: row;
  78.         justify-content: flex-end;
  79.         align-items: center;
  80. }
  81. </style>
复制代码



我们这边测试一下
380
帖子
4
勋章
6
Y币
你说的刷新什么意思?

你界面上没显示  dateDesc 这个值
157
帖子
1
勋章
3581
Y币
联动的意思,有些月份是30天 有些是29  28 这样的,但是选了之后,新的dataset已经生成了,但picker不变化
技术支持-F · 2022-4-7 14:37你说的刷新什么意思?

你界面上没显示  dateDesc 这个值
157
帖子
1
勋章
3581
Y币
请问可以了吗?我这个是完整的一个组件页面
特特法爷 · 2022-4-7 14:21我们这边测试一下
157
帖子
1
勋章
3581
Y币
拼团demo中的地址是可以联动的,例如选择了省份,市辖区的会跟着变,但是我写的这个不知道问题在哪里,就是不会联动,只有第一次初始化的时候有效,
157
帖子
1
勋章
3581
Y币
能不能来个人看看???就算我不会操作也麻烦提示下好吧?关于APICloud3.0我提了N个问题,没有一次得到满意答复的,要么说反馈,反馈就没有后文了,要么就是石沉大海


你们跟uniapp本就区别不大,愿意花钱不就是看到你们有服务吗?现在服务也没有了??
157
帖子
1
勋章
3581
Y币
1
今天测试一下你的代码
您需要登录后才可以回帖 登录

本版积分规则