父组件swan
<view id="registerList" class="copyrightRegisterIndex">
<view bindtap="updateData">hehehehhe</view>
<item-list id="start_id" bindmyevent="onMyEvent" listData="{{listData}}" />
</view>
父组件 js
/**
* @file index.js
* @author swan
*/
const app = getApp()
Page({
data: {
listData:{},
},
onLoad() {
// 监听页面加载的生命周期函数
this.setData({
listData:{
name:'heihei'
}
})
},
onMyEvent: function (e) {
console.log(e)
},
// 父页面传值给子组件
updateData(){
console.log("update")
var start_id = this.selectComponent("#start_id");
this.setData({
listData:{
name:'heihei1'
}
})
start_id.btn_start(this.data.listData);
}
})
父组件json
{
"navigationBarTitleText":"组件通信",
"usingComponents": {
"item-list": "../components/index/workslist/workslist"
},
"pullRefresh":true
}
子组件swan
<view class="search-content-dd" bindtap="onTap">
hahahhahah
</view>
子组件js
Component({
properties: {
listData:{},
propName: { // 属性名
type: String, // 类型(必填),目前接受的类型包括:String, Number, Boolean, Object, Array, null(表示任意类型)
value: 'val', // 属性初始值(必填)
observer: function(newVal, oldVal) {
// 属性被改变时执行的函数(可选)
}
}
},
data: {
clearStatusValue:false,
searchValue:'',
styleWidth:{
width:'686rpx'
},
copyrightRegisterData:[
// {
// title:'作品名称作品名称作品名称作品作品名称作品名称作品名称作品',
// ownerName:'张三丰',
// commitTime:'2019-07-11 18:56',
// status:6,
// },
],
pageNumber:1,
pageSize:10,
}, // 私有数据,可用于模版渲染
// 生命周期函数,可以为函数,或一个在methods段中定义的方法名
// 组件生命周期函数,在组件实例进入页面节点树时执行
attached: function () {
console.log(this.properties.listData)
},
// 组件生命周期函数,在组件实例被从页面节点树移除时执行
detached: function () {
},
methods: {
// 子组件传值给父页面
onTap:function() {
console.log("11111111")
var myEventDetail = {name:'hahhah'} // detail对象,提供给事件监听函数
this.triggerEvent('myevent', myEventDetail);
},
// 子组件接收父组件点击事件传过来的值
btn_start: function(obj) {
console.log("子组件接收到的值", obj);
// if (obj == 2) {
// this.setData({
// context: "子组件接收到父组件页面点击事件传过来的值"
// })
}
}
});
子组件json
{
"component": true,
"usingComponents": {}
}