微信小程序组件嵌套组件传值问题

2022-09-13 16:25:46 浏览数 (3)

思考
  • 我们在主页面使用了panel组件,而panel组件内部使用了tabBar组件,这时候我们应该如何正确的传递数据给tabBar组件呢?
  • 其实也很简单,就是主页面传值给panel组件panel组件在传值给tabBar组件,这样就间接实现了主页面tabBar组件传值。
主页面使用panel组件

注册组件到页面

注册定义组件json

代码语言:javascript复制
{
"usingComponents": {
"panel" :"/compontents/panel/panel"
}
}

主页面初始化数据

代码语言:javascript复制
...
data: {
 items:[
     {id:1,name:"测试"},
     {id:2,name:"测试1"}
 ]
}
...

主页面调用panel组件wxml并传值

代码语言:javascript复制
<panel panelItem="{{items}}"/>

组件panel

组件所在目录位置

在组件panel的js文件中定义接受的值,其中type为类型,value为默认值

代码语言:javascript复制
...
properties: {
 panelItem:{
    type:Array,
    value:[]
}
},
...

组件wxml

代码语言:javascript复制
<view>
...
 <tabBar tabBarItem="{{panelItem}}"
...
</view>

组件tarBar

组件所在目录位置

在组件tarBar的js文件中定义接受的值,其中type为类型,value为默认值

代码语言:javascript复制
...
properties: {
 tabBarItem:{
    type:Array,
    value:[]
}
},
...

组件wxml

代码语言:javascript复制
<block x:for="{{tabBarItem}}" wx:key="index">
 <view>{{item.id}}<view>
 <view>{{item.name}}<view>
</block>

0 人点赞