取舍
取舍
  • 发布:2019-05-11 08:55
  • 更新:2022-03-11 10:25
  • 阅读:4990

为什么木有人啊??【报Bug】自定义组件模式中子组件props接收不到数组中的function

分类:uni-app

详细问题描述

自定义组件模式下, app与小程序中,子组件props中接收不到数组项内的function, 模板模式就可以接收到, 详细请看附件demo

[内容]

重现步骤 ------------详见附件demo

[步骤]
自定义组件模式中,传一个数组给组件(数组项内包含function)
[结果]
app与小程序中打印为undefined
[期望]
能获取该方法

IDE运行环境说明

[IDE版本号] 1.9.4.20190426

uni-app运行环境说明

[运行端是h5或app或某个小程序?] app 与 小程序

[编译模式是老模板模式还是新的自定义组件模式?] 自定义组件模式

联系方式

[QQ] 494843897

2019-05-11 08:55 负责人:无 分享
已邀请:
7***@qq.com

7***@qq.com

如果含有fn,不要用props传参,有的端支持,有的却不支持,除非改设计模式,但是有些个别场景真的需要这种设计模式,比如自定义验证器,所以直接改用$refs传参能做到全端统一,(但组件内需要把原props参数转移至某个init方法内来进行外部调用来实现传参,从此这个组件就多了一个init方法,每次引用组件时,先做一个$refs.xxx.init(params)一下即可,如果原写法内部有watch,则新写法外部也监听下变化实时的init()一下,当然这样做会有一定的改动,但是这种改动非常小,总比换一个设计模式来的方便和有效)

LFZ

LFZ

https://blog.csdn.net/qq_40445661/article/details/118539610

DCloud_UNI_FXY

DCloud_UNI_FXY

不建议使用 props 传递 function,建议统一使用事件机制实现类似功能

不同平台底层支持度不一样
微信小程序,支持 props 传递对象属性为 function(不能直接传递 function),
比如 :p="obj",obj.fn = function(){}
但是百度,头条是不支持传递 function 的。

  • 取舍 (作者)

    好吧 那我想想有没有其他办法

    2019-05-18 16:11

  • 杜门炭治郎

    [图片] 微信编译后对象属性只要是函数的都没编译过来。。。没法用

    2019-10-11 13:53

  • 9***@qq.com

    回复 取舍: 你最终怎么处理的

    2020-02-10 10:18

  • 9***@qq.com

    :p="obj",obj.fn = function(){},这种用法在微信小程序上也不支持呀,obj打印出来为{}

    2021-10-19 16:36

小张没有名字

小张没有名字

对啊 我之前也提交了这个BUG!! 至少APP要支持啊

  • 取舍 (作者)

    就是就是

    2019-05-18 16:11

  • DCloud_UNI_FXY

    通过 props 传递 function 是一种不好的设计,应该优先使用事件机制

    2019-05-18 17:00

  • h***@163.com

    回复 DCloud_UNI_FXY: 我传递一个class的实例, 实例方法全都没了,这个问题能不能修复一下。。

    2019-09-29 14:34

  • 1***@qq.com

    回复 DCloud_UNI_FXY: 你告诉我如果组件外面有关联的值怎么做验证?

    2020-12-23 16:35

  • 1***@qq.com

    回复 DCloud_UNI_FXY: 4年了还没解决这问题

    2023-12-19 15:50

杜门炭治郎

杜门炭治郎

微信编译后对象属性只要是函数的都没编译过来。。。没法用 我也想使用事件机制 但是想要实现keep-alive效果,来回父子组件通信传参调用很乱,一点也不友好

EvanMa

EvanMa

同样的问题,写表单组件时rules里有validator方法就变成空对象了小程序里

LFZ

LFZ

从megalojs转到uniapp发现数组中的function拿不到,megalojs是可以数组中含有function的

小菜菜

小菜菜

虽然实现上传funtion不好,但是我们的业务是全局统一的,做统一封装能省不少事,父子组件来回传数据是真蛋疼

该问题目前已经被锁定, 无法添加新回复