amis Cordova环境下input-date、input-datetime、input-time三个组件使用报错

6yoyoihd  于 3个月前  发布在  其他
关注(0)|答案(2)|浏览(67)
描述问题:

Cordova环境下input-date、input-datetime、input-time三个组件使用报错

截图或视频:

如何复现(请务必完整填写下面内容):
  1. 你是如何使用 amis 的?
    sdk
  2. amis 版本是什么?请先在最新 beta 版本测试问题是否存在

2.8、2.9、3.0都有问题

  1. 粘贴有问题的完整 amis schema 代码:
{
    "label": "日期",
    "type": "input-date",
    "inputFormat": "YYYY-MM-DD",
    "format": "YYYY-MM-DDT00:00:00.000[Z]",
    "name": "date"
}
{
        "type": "input-time",
        "name": "time",
        "label": "时间"
}
{
        "type": "input-datetime",
        "name": "datetime",
        "label": "日期时间"
}
  1. 操作步骤
    在手机app上(包括安卓与ios),点击input-date、input-datetime、input-time中任意控件都能重现此问题(Cordova环境)
mpbci0fu

mpbci0fu1#

重现规则

在Cordova环境下,访问使用amis构建的网页app。
进入app后,在某个界面可以正常显示页面中的日期组件(这个页面是用amis sdk渲染schema json生成的,页面中只有一个日期组件),当点击日期组件后就会报错。

手机浏览器上是好的,只要是Cordovar环境下开发的app,ios和android手机都有此问题。

DaysView组件内不调用localeable函数问题依赖存在

且我把DaysView,Picker,PickerColumn组件内的国际化相关代码合并移除后问题一样存在 ,说明此问题可能跟国际化本身没关系。

经排查确认是Picker问题,点击的时候不返回Picker,在DaysView组件内直接返回一个静态标签就不会报错。

但是Picker组件直接返回一个静态标签问题依然存在

说明可能并不是Picker组件本身问题。

Picker组件最终Export的结果如果不调用themeable,直接export Picker的话问题就不会报错了

说明问题可能出在themeable函数中。

调用themeable的情况下,报错信息如下:

报错信息定位到的具体抛错代码行如下:
看起来是是因为触发组件的构造函数时,在其中调用super(props)函数造成死循环,因为报错时传入的props参数值为undefined。

ccrfmcuu

ccrfmcuu2#

调式环境配置:

  • 跑好amis源码项目, https://github.com/baidu/amis

  • build amis 源码项目暴露sdk.js文件

  • 运行华炎魔方模板项目 https://github.com/steedos/steedos-project-template

  • 在yarn start前先在env.local文件中配置好环境变量

  • ROOT_URL= http://192.168.0.66:5800 //如果用127.0.0.1,手机真机上访问不到

  • STEEDOS_AMIS_URL=${amis访问url}/packages/amis //用于让魔方项目引用这个地址下的sdk.js文件,也可以配置环境变量STEEDOS_AMIS_VERSION=3.2.0来指定引用哪个版本的amis sdk,但是这样无法改amis源码调式

  • PC上访问运行好的华炎魔方项目,使用用户名密码登录进入系统内,可能要先点击注册按钮注册本地账户

  • 手机真机上下载华炎魔方手机APP, https://docs.steedos.com/zh-CN/user/download-apps

  • 安装好魔方APP后,打开APP并在第一个界面输入要连接的魔方服务端地址,就是上面的 http://192.168.0.66:5800

  • 手机APP上按以下截图所示进入节假日列表界面并打开新建记录页面,点击日期组件后就能重现上面说的报错

  • 通过改amis源码并build生成新的sdk.js文件就可以调式此问题

相关问题