收藏
回答

自定义组件属性设置函数类型报错

框架类型 问题类型 终端类型 微信版本 基础库版本
小程序 Bug 微信iOS客户端 7.0.10 2.10.0

来自文档:“WXML 数据绑定:用于父组件向子组件的指定属性设置数据,仅能设置 JSON 兼容数据(自基础库版本 2.0.9开始,还可以在数据中包含函数)。”

但是给自定义组件属性直接设置为 Function 类型会报错:

Component({
  properties: {
    test: Function
  }
})

换一种方式设置又没问题:

Component({
  properties: {
    test: {
      type: Function
    }
  }
})

另外开发者工具(版本号:1.02.1911180)提供的 TS 类型定义不支持将属性设置为 Function 类型。

回答关注问题邀请回答
收藏

1 个回答

  • LastLeaf
    LastLeaf
    2020-01-13

    properties 不直接接收 Function 类型哦。你要传的话,可以设个 Object 类型然后放在对象字段里面。

    2020-01-13
    有用
    回复 4
    • M&S
      M&S
      2020-01-14
      可是我试过是支持的,只要将 type 设为 null, 或者使用我问题主体的第二种写法。我希望如果你们支持就完整支持吧,properties 传 function 确实在某些情况下比较方便有用。谢谢。
      2020-01-14
      回复
    • LastLeaf
      LastLeaf
      2020-01-14回复M&S
      null 只是不校验类型。现在直接传递 function 在一些边界 case 上会有难以解决的问题,所以我们暂时没有支持。
      2020-01-14
      回复
    • 啥时给
      啥时给
      2021-11-05
      文档能不能完善一下. <框架>文档根本找不到这方面的说明, <指南>里面倒是提了一句;  像 properties 支持哪些数据类型都不能列出来吗?
      2021-11-05
      回复
    • 理想三旬
      理想三旬
      2023-10-27
      放在Object字段里面也不行
      2023-10-27
      回复
登录 后发表内容
问题标签