小程序
小游戏
企业微信
微信支付
扫描小程序码分享
当父组件向子组件传值类型为函数时,data中的直接属性如果是函数,那么是可以传递到子组件中的;但是如果一个函数定义在data的某个深层次结构中,那么子组件就会得不到这个函数值。
在代码片段中,data下的propFunC是可以正常传递到子组件中的;但是data.info.formatter的值为函数,无法传递到子组件中了。
2 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
属性的类型可以为 String Number Boolean Object Array 其一,也可以为 null 表示不限制类型。
String
Number
Boolean
Object
Array
null
从基础库 2.0.9 开始,对象类型的属性和 data 字段中可以包含函数类型的子字段,即可以通过对象类型的属性字段来传递函数。
你细品这段话,是你自己理解错了而已
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
// 父组件wxml
<fatherComp info="{{info}}">
// 父组件js
data: {
info: {}
},
onReady(){
const _this = this;
this.setData({
info: { fn: _this.fn }
})
fn:{
// xxxxxxxxxxx
}
// 子组件xwml
<button bindtap="fn">
// 子组件js
properties: {
info: {
type: Object,
methods: {
fn(e) {
this.properties.info.fn(e)
官方文档不是说从基础库版本2.0.9开始就支持数据绑定中可以传函数给子组件了吗?怎么还有点残缺的感觉,就只能data的某个属性的值是函数时,才能传给子组件?深层次的函数对象传不了!!!
如下是官网原文:
注意:这样的数据绑定只能传递 JSON 兼容数据。自基础库版本 2.0.9 开始,还可以在数据中包含函数(但这些函数不能在 WXML 中直接调用,只能传递给子组件)。
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
属性的类型可以为
String
Number
Boolean
Object
Array
其一,也可以为null
表示不限制类型。从基础库 2.0.9 开始,对象类型的属性和 data 字段中可以包含函数类型的子字段,即可以通过对象类型的属性字段来传递函数。
你细品这段话,是你自己理解错了而已
// 父组件wxml
<fatherComp info="{{info}}">
// 父组件js
data: {
info: {}
},
onReady(){
const _this = this;
this.setData({
info: { fn: _this.fn }
})
},
fn:{
// xxxxxxxxxxx
}
// 子组件xwml
<button bindtap="fn">
// 子组件js
properties: {
info: {
type: Object,
}
},
methods: {
fn(e) {
this.properties.info.fn(e)
},
}
官方文档不是说从基础库版本2.0.9开始就支持数据绑定中可以传函数给子组件了吗?怎么还有点残缺的感觉,就只能data的某个属性的值是函数时,才能传给子组件?深层次的函数对象传不了!!!
如下是官网原文:
注意:这样的数据绑定只能传递 JSON 兼容数据。自基础库版本 2.0.9 开始,还可以在数据中包含函数(但这些函数不能在 WXML 中直接调用,只能传递给子组件)。