收藏
回答

radio标签设置value为object,获取时有点坑

问题模块 框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
API和组件 小程序 Bug radio 工具 本地测试 2.7.0

- 当前 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>


最后一次编辑于  2019-06-25
回答关注问题邀请回答
收藏

1 个回答

  • one for all
    one for all
    2019-06-25

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

    2019-06-25
    赞同
    回复 3
    • \
      \
      2019-06-25

      查文档才发现这个值只能是string

      bindchange绑定data-row没办法获取,

      bindtap倒是可以,但要多点一下,只能换个思路了,自己写类似radio的view

      2019-06-25
      回复
    • one for all
      one for all
      2019-06-25回复\

      还是用自定义属性吧

      2019-06-25
      回复
    • \
      \
      2019-06-25回复one for all

      2019-06-25
      回复
登录 后发表内容