Open sunxiuming92 opened 6 years ago
感谢大佬,可能只是给我们公司部门用,我自己的代码还拿不出手的(之前公司的后台我就是用的iview去搭的,真的很舒服,谢谢大佬一直在造轮子,会一直支持的)
好想法,支持改成MPvue的。。我们的新项目也准备入坑MPvue了
我这里通过usingComponents导入iview-weapp src到mpvue中,在使用到action-sheet的时候handleClickItem1获取不到{detail}。原生小程序倒是能获取到。
handleClickItem1 ({detail}) { const index = detail.index + 1 $Message({ content: '点击了选项' + index }) },
好的,问题已解决,感谢 @JJJYY 问题:
若原生组件通过click事件,即this.triggerEvent('click', { index })来进行父子组件通信,mpvue无法从event.mp中读取到正确的detail,原因是因为mpvue将click事件编译为tap导致this.triggerEvent('click', { index })无法找到click句柄
解决方法:
修改组件库click事件名称,例如: this.triggerEvent('click', { index }) => this.triggerEvent('iclick', { index }) 对应的模板中: @click => @iclick
受影响的组件(仅传值情况受影响)
action-sheet modal
在mpvue中怎么使用$Message组件呢
其实不需要专门搞一套mpvue版本的 ,在mpvue里直接引入原生组件就行了 ,不过要注意下iview的库是es6写的 ,需要用babel转一下再引入到mpvue里,或者改mpvue的脚手架
我这里通过usingComponents导入iview-weapp src到mpvue中,在使用到action-sheet的时候handleClickItem1获取不到{detail}。原生小程序倒是能获取到。
handleClickItem1 ({detail}) { const index = detail.index + 1 $Message({ content: '点击了选项' + index }) },
好的,问题已解决,感谢 @JJJYY 问题:
若原生组件通过click事件,即this.triggerEvent('click', { index })来进行父子组件通信,mpvue无法从event.mp中读取到正确的detail,原因是因为mpvue将click事件编译为tap导致this.triggerEvent('click', { index })无法找到click句柄
解决方法:
修改组件库click事件名称,例如: this.triggerEvent('click', { index }) => this.triggerEvent('iclick', { index }) 对应的模板中: @click => @iclick
受影响的组件(仅传值情况受影响)
action-sheet modal
解决方法:
修改组件库click事件名称,例如: this.triggerEvent('click', { index }) => this.triggerEvent('iclick', { index }) 对应的模板中: @click => @iclick
按照这样改了也同样拿不到detail值
@rendq 事件获取index为 handleClickItem1 ({mp}) { const index = mp.detail.index $Message({ content: '点击了选项' + index }) },
可以,你如果想开发的话,我可以给你开一个 repo:iview-weapp-mpvue