易者
易者
  • 发布:2023-03-20 10:28
  • 更新:2023-03-20 10:53
  • 阅读:355

【报Bug】有关组件以及组件方法binddata()和onFieldChange()的问题

分类:uni-app

产品分类: uniapp/H5

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: 11

HBuilderX类型: 正式

HBuilderX版本号: 3.7.3

浏览器平台: Chrome

浏览器版本: 105.0.1343.53 (正式版本) (64 位)

项目创建方式: HBuilderX

操作步骤:

见BUG 描述

预期结果:

见BUG 描述

实际结果:

见BUG 描述

bug描述:

这个bug我提了有一周了,没回复。见链接有关binddata和onFieldChange的问题。不得不再次重开新帖提交bug,内容如下:

运行环境:HX3.7.3和uni-admin2.3.5都是当前最新版。下述问题vue2和vue3都一样。
问题一:uni-forms-item组件的问题:表格左侧的标题宽度被挤压到下一行,如果把源代码中的默认值80写入就正常,但源码没写入默认值,不知为何。
问题二:picker组件须在开始标签和结束标签之间写入值才能显示,而且无论是否显示值,表格边框都不显示,这个问题以前没有。
问题三:binddata()如果不重写,对于表单组件无效,比如在switch或picker等组件中无效。
问题四:onFieldChange()在输入框中有效,但在switch或picker等组件中无效。

复现步骤:

一、这是dbschema代码:

{    
    "bsonType": "object",    
    "required": [],    
    "permission": {    
        "read": true,    
        "create": true,    
        "update": true,    
        "delete": true    
    },    
    "properties": {    
        "_id": {    
            "description": "ID,系统自动生成"    
        },    
        "testswitch1": {    
            "bsonType": "bool",    
            "label": "测试默认",    
            "defaultValue": false    
        },    
        "testswitch2": {    
            "bsonType": "bool",    
            "label": "测试onFieldChange",    
            "defaultValue": false    
        },    
        "testpicker1": {    
            "bsonType": "string",    
            "label": "测试默认picker",    
            "description": "请选择开始时分",    
            "defaultValue": "11:00",    
            "componentForEdit": {    
                "name": "picker",    
                "props": {    
                    "mode": "time",    
                    "start": "00:00",    
                    "end": "23:59"    
                }    
            }    
        },    
        "testpicker2": {    
            "bsonType": "string",    
            "label": "测试picker1",    
            "description": "请选择开始时分",    
            "defaultValue": "12:22",    
            "componentForEdit": {    
                "name": "picker",    
                "props": {    
                    "mode": "time",    
                    "start": "00:00",    
                    "end": "23:59"    
                }    
            }    
        }    
    }    
}  

二、用schema2code生成后,略加改动的源代码如下:

<template>    
  <view class="uni-container">    
    <uni-forms ref="form" :model="formData" validateTrigger="bind">    
      <uni-forms-item name="testswitch1" label="测试默认">    
        <switch @change="binddata('testswitch1', $event.detail.value)" :checked="formData.testswitch1"></switch>{{formData.testswitch1?'已开启':'已关闭'}}    
      </uni-forms-item>    
      <uni-forms-item ref="mytest1" name="testswitch2" label="测试onFieldChange">    
        <switch @change="(e)=>$refs.mytest1.onFieldChange($event.detail.value)" :checked="formData.testswitch2"></switch>{{formData.testswitch2?'已开启':'已关闭'}}    
      </uni-forms-item>    
      <uni-forms-item name="testpicker1" label="测试默认picker">    
        <picker mode="time" start="00:00" end="23:59" placeholder="请选择开始时分" @change="binddata('testpicker1', $event.detail.value)" v-model="formData.testpicker1"></picker>    
      </uni-forms-item>    
      <uni-forms-item ref="mytest2" name="testpicker2" label="测试picker1">    
        <picker mode="time" start="00:00" end="23:59" placeholder="请选择开始时分" @change="(e)=>$refs.mytest2.onFieldChange($event.detail.value)" v-model="formData.testpicker2">testtext{{formData.testpicker2}}</picker>    
      </uni-forms-item>    
      <view class="uni-button-group">    
        <button type="primary" class="uni-button" style="width: 100px;" @click="submit">提交</button>    
        <navigator open-type="navigateBack" style="margin-left: 15px;">    
          <button class="uni-button" style="width: 100px;">返回</button>    
        </navigator>    
      </view>    
    </uni-forms>    
  </view>    
</template>

三、页面效果如下图:

2023-03-20 10:28 负责人:DCloud_uniAD_HDX 分享
已邀请:
易者

易者 (作者)

自己再顶一下,希望这次不要再等一周还没有解决问题。

要回复问题请先登录注册