radio标签设置value为object,获取时有点坑
发布于 5 年前 作者 ping90 11216 次浏览 来自 问答
  • 当前 Bug 的表现(可附上截图)

data里面设置了radio要用到的值,如下:

data: {

    background_style: [

        { name: ‘默认’, value: {style_name:’’, background_color: ‘’, front_color: ‘’},checked: ‘true’ },

    ]

}

在appdata里面看到的是这样的结构:

然鹅,在页面打印出来的是个[object Object]

开始以为只是个object对象,展开就行,

后来typeof()发现他就是个字符串,这有什么解决办法么,各位大佬

  • 预期表现

应该是个object对象,而不是字符串。

  • 复现路径
  • 提供一个最简复现 Demo

JS:

Page({

    data: {

        background_style: [

            { name: ‘默认’, value: {style_name:’’, background_color: ‘’, front_color: ‘’},checked: ‘true’ },

            { name: ‘白色’, value: {style_name:‘white’, background_color: ‘#fff’, front_color: ‘#ccc’}},

            { name: ‘黑色’, value: {style_name:‘blank’, background_color: ‘#000’, front_color: ‘#fff’}},

        ]

    },

    radioChange: function (e) {

        console.log(e.detail.value)

        console.log(typeof (e.detail.value))

    }

})

wxml:

<radio-group class=“radio-group” bindchange=“radioChange”>

<label class=“radio” wx:for="{{background_style}}" wx:key=“name”>

<radio value="{{item.value}}" checked="{{item.checked}}" />{{item.name}}

</label>

</radio-group>

1 回复

谁家的value能设置object,你还是给radio一个自定义属性吧,然后通过这个值在数组里面查找

回到顶部