微信扫码登录

其他登录方式

绑定手机号

注册

我同意用户协议

忘记密码

用户协议

绑定手机号

近期有不法分子打着爱盈利的旗号,制作“爱盈利”名称的App,并伪造爱盈利证件,骗取用户信任,以抖音点赞赚钱或其他方式赚钱为名义,过程中以升级会员获得高佣金为名让用户充值。
爱盈利公司郑重声明:我司没有研发或运营过任何名为“爱盈利”的APP,我司做任务赚钱类产品从没有让任何普通用户充值升级会员。我公司产品均在本网站可查询,请将网站拉至底部,点击“关于我们”可查看爱盈利相关产品与服务。
温馨提示:当遇到此类问题请拨打官方电话或添加官方微信,以免财产损失。爱盈利官网地址:www.aiyingli.com。
  • 推广与合作
X

小程序丨【已解决】大家把【自定义组件】遇到的问题和解决方法都统一在这里讨论吧。 ... ...

来源: 4941

自定义组件才出来没多久,感觉解决了很多的问题,不过刚开始用不免遇到边边角角的问题,希望大家都可以在这个帖子统一记录问题和解决方法,方便快速查找问题。


楼主先来遇到的问题和解决方法:


  1. 在引用组件时在页面的 json 文件中进行配置。

{
  "usingComponents": {
    "component-tag-name": "path/to/the/custom/component"
  }
}


        这里的组件名称是随便取得名字;

        后面的组件路径使用相对路径,不需要加后缀名称。如: ../test/test


2. 按照官网自定义组件写法但没有成功显示??


    首先检查下开发工具使用的基础库版本。官网说明要 1.6.3 才能使用自定义组件,在更新1.6.3 版本时间节点之前创建的项目默认基础库是不会自动设置为 1.6.3 的,这个要注意一下。


    设置方式:开发工具右上角 > 详情  >  项目设置 > 基础库版本。


网友回复:

A***:

父子组件,兄弟组件的数据通信问题怎么解决的?


赵***:

用自定义控件时出现了,VM1664:2 TypeError: Cannot read property '__wxspec__' of null,

【已解决】大家把【自定义组件】遇到的问题和解决方法都统一在这里讨论吧。 ... ...

大***:

1. 父子组件交互

 1)父组件往子组件传值

<children-comp inner-text="Some text"></children-comp>

2)子组件接收父组件的值

在子组件 .js 文件中用 properties 属性接收父组件传来的值,这个和官网文档里的用法是一样的啊。 刚测试了一下确实也是可以的,不管是页面调用组件还是组件调用组件都是这种写法。


2.至于你说的兄弟组件,这种没想到具体应用场景。


3.另外,测试过程中发现一个问题:这里的组件名称不能包含数字,否则控制条会报错。如:写成component-tag-name2 就会报错。

{
  "usingComponents": {
    "component-tag-name": "path/to/the/custom/component"
  }
}



A***:

不能包含数字是文档说的  名字这些都是只能用小写字母和下划线的 我用数字也错

大***:

哈哈,好吧,我看的不够仔细。

A***:

怎么还是不行

【已解决】大家把【自定义组件】遇到的问题和解决方法都统一在这里讨论吧。 ... ...


【已解决】大家把【自定义组件】遇到的问题和解决方法都统一在这里讨论吧。 ... ...


【已解决】大家把【自定义组件】遇到的问题和解决方法都统一在这里讨论吧。 ... ...



【已解决】大家把【自定义组件】遇到的问题和解决方法都统一在这里讨论吧。 ... ...

就是按照这个步骤来的

A***:

子组件向父组件怎么传的数据??

大***:

我测试了下成功了,demo 如下:


1. 组件 price.wxml

<input class="inputStyle" value="{{num}}" type="number" bindinput='onCompInputChange'/>


2. 组件 price.js

Component({

    methods: {

        onCompInputChange: function (e) {

            console.log('comp input method')

            console.log(e.detail.value)

            this.triggerEvent('input', e.detail) // 只会触发 pageEventListener2

        }

    }

})


3. 页面 index.wxml

<price  num="{{2}}" min="{{1}}" bindinput="onPageInputChange"/>


4. 页面 index.js

Page({

    onPageInputChange: function (e) {

        console.log('page input method')

        console.log(e.detail.value)

    }

})


总结:

a. 组件和页面的 .wxml 事件名称要相同,比如我这里都是 bindinput,试了下自定义事件没有成功;

b. 页面 index.js 中事件 onPageInputChange 的参数 e 来源于组件 price.js 中 this.triggleEvent 的第二个参数,而且这里必须要是 e.detail,写 e 的话传过去的值只能是 undefined。


A***:

事件名称也要相同?

A***:

你这个triggerEvent的事件名都没有在父组件出现啊?。。。

爱盈利(aiyingli.com)移动互联网最具影响力的盈利指导网站。定位于服务移动互联网创业者,移动盈利指导。我们的目标是让盈利目标清晰可见!降低门槛,让缺乏经验、资金有限的个人和团队获得经验和机会,提高热情,激发产品。

评论

相关文章推荐

SELECT dw_posts.ID,dw_posts.post_title,dw_posts.post_content FROM dw_posts INNER JOIN dw_term_relationships ON (dw_posts.ID = dw_term_relationships.object_id) WHERE 1=1 AND(dw_term_relationships.term_taxonomy_id = 5246 ) AND dw_posts.post_type = 'post' AND (dw_posts.post_status = 'publish') GROUP BY dw_posts.ID ORDER BY RAND() LIMIT 0, 6

京ICP备15063977号-2 © 2012-2018 aiyingli.com. All Rights Reserved. 京公网安备 11010102003938号