微信小程序——传值时直接“ ”和“{{ }}”区别

MyBtn.js
Component({
    properties:{
        btnName:{
            type:String,
            value:"默认btn"
        },
        num:Number,
        arr:Array
    },
    created(){
        console.log(1000)
        console.log(this.data)
        console.log(typeof this.data)
    }
})

MyBtn.wxml

<button style="background: red;color: #fff;">
    {
   
   {btnName}} {
   
   {num}} {
   
   {arr}}
</button>
hello.wsml
<!--pages/hello/hello.wxml-->
<text>{
   
   {msg}}</text>
<button bindtap="update">修改</button>
<my-btn btnName="{
   
   {'我的按钮'}}"></my-btn>
<!-- <my-btn btnName="按钮2" num="3.14" arr="[1,2,3]"></my-btn> -->
<my-btn btnName="按钮2" num="{
   
   {3.14}}" arr="{
   
   {[1,2,3]}}"></my-btn>
效果图

对于数组直接使用“”时出现,出现下图警告

这个错误提示表明,在 MyBtn 组件中的 arr 属性接收到了一个不兼容的值。该属性期望一个数组 (<Array>),但却接收到了一个非数组的值。为了解决这个问题,可以检查传递给 MyBtn 组件的 arr 属性的值。确保传递的是一个数组。

在传值时候,会将“ ”内信息转化为定义的类型。使用“ ”表示将字符串类型强制转化为定义的类型,而系统中无法将带[ ]的字符串强制转为定义的数组arr,所以出现num可以正常显示,但是arr不行。

所以,当想传一个带类型的参数时,利用插值表达法,也就是“{ { }}”形式

猜你喜欢

转载自blog.csdn.net/weixin_58963766/article/details/131620057