wechat-miniprogram / recycle-view

recycle-view: a wechat miniprogram custom component
MIT License
635 stars 72 forks source link

在mpvue中怎么使用,引入后总是报page.selectComponent is not a function #44

Closed qianlonggg closed 5 years ago

qianlonggg commented 5 years ago

在mpvue中怎么使用,引入后总是报page.selectComponent is not a function,应该是引入错误吧,

cunjinli6 commented 5 years ago

编译后的代码片段来一个

qianlonggg commented 5 years ago

如果直接使用这种配置会报找不到组件 "usingComponents": { "recycle-view": "miniprogram-recycle-view/recycle-view", "recycle-item": "miniprogram-recycle-view/recycle-item" } 我把生成的组件考了一份在static中改成 "usingComponents": { "recycle-view": "../../../../static/miniprogram-recycle-view/src/recycle-view", "recycle-item": "../../../../static/miniprogram-recycle-view/src/recycle-item" } js中使用 const createRecycleContext = require('miniprogram-recycle-view') let ctx = createRecycleContext({ id: 'recycleId', dataKey: 'newepList', page: this, itemSize: { // 这个参数也可以直接传下面定义的this.itemSizeFunc函数 width: 375, height: 182 } })

编译后的文件与组件相关的只有这个 var createRecycleContext = __webpack_require__(340); 蒙了 node_modules中生成的目录 image

cunjinli6 commented 5 years ago

const createRecycleContext = require('miniprogram-recycle-view') let ctx = createRecycleContext({ id: 'recycleId', dataKey: 'newepList', page: this, itemSize: { // 这个参数也可以直接传下面定义的this.itemSizeFunc函数 width: 375, height: 182 } }) 这儿的page参数应该是小程序的page/component对象,是不是用了mpvue之后,this不对?

qianlonggg commented 5 years ago

const createRecycleContext = require('miniprogram-recycle-view') let ctx = createRecycleContext({ id: 'recycleId', dataKey: 'newepList', page: this, itemSize: { // 这个参数也可以直接传下面定义的this.itemSizeFunc函数 width: 375, height: 182 } }) 这儿的page参数应该是小程序的page/component对象,是不是用了mpvue之后,this不对?

是的 this会被改变,我在看下怎么该

cunjinli6 commented 5 years ago

有修改的方案之后,麻烦在这里回复下,方便后来人看。

qianlonggg commented 5 years ago

有修改的方案之后,麻烦在这里回复下,方便后来人看。

const createRecycleContext = require('miniprogram-recycle-view') let ctx = createRecycleContext({ id: 'recycleId', dataKey: 'newepList', page: this, itemSize: { // 这个参数也可以直接传下面定义的this.itemSizeFunc函数 width: 375, height: 182 } }) 这儿的page参数应该是小程序的page/component对象,是不是用了mpvue之后,this不对?

image 我拿到了当前页面的component对象,结果还是报一样的错……

cunjinli6 commented 5 years ago

是小程序的page/component对象,这个对象有selectComponent函数的。

qianlonggg commented 5 years ago

是小程序的page/component对象,这个对象有selectComponent函数的。

OK

qianlonggg commented 5 years ago

有修改的方案之后,麻烦在这里回复下,方便后来人看。

把this直接换成that.$mp.page就可以直接用了