百度小程序父子组件通信

父组件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": {}

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容