这周整理了一下做微信小程序页面时遇到的一些问题,先说说常见的上传图片吧。
上传图片公用组件
首先要了解的是父子传参。
1.A组件为父组件,B组件为子组件,以下是A组件向B组件传参:
在A组件的json中写入:
{ "component": true, "usingComponents": { "componentB":"../common/chooseImage/index"
}
}
在A组件的wxml中写入:
<view>我是组件A</view> <view> <view>子组件内容:</view> <componentB paramGetB='我是A向B中传入的参数'> </componentB> </view>
在B组件的js中写入:
Component({ behaviors: [], properties: { paramGetB:String //properties中定义A组件要传过来的参数类型,A组件向B组件传参,实际上就是在A组件中引入B组件的时候,
带上一个属性paramGetB,并且给其赋值,然后B组件通过这个属性名称paramGetB,获取其值 }, data: { }, // 私有数据,可用于模版渲染 methods: { } })
在B组件的wxml中写入:
<view style='text-align:center;'>我是组件B</view> <view>A中传入的参数:{{paramGetB}}</view>
2.A组件为父组件,B组件为子组件,以下是B组件向A组件传参:
在父组件A中wxml:
<view>
<view>A组件内容:</view>
<view>B组件传入参数:{{paramGetA}}</view>
<componentB bind:myevent="onMyEvent"> </componentB> //myevent就是绑定的触发事件
</view>
在父组件A中js:
Component({ data: { paramGetA:'' }, // 私有数据,可用于模版渲染 methods: { onMyEvent:function(e){ this.setData({ paramGetA: e.detail.paramGetA }) } } })
在子组件B中wxml:
<view > <button bindtap='changeEvent'>向A中传入参数</button> </view>
在子组件B中js:
Component({ behaviors: [], properties: { paramGetB:String }, data: { }, // 私有数据,可用于模版渲染 methods: { changeEvent:function(){ this.triggerEvent('myevent', { paramGetA:123}); //this.triggerEvent就是按钮点击之后执行的事件,触发myevent事件,传入参数paramGetA进入父组件 } } })