react 中如何获取多个 antd-mobile tag 的选中状态?

https://mobile.ant.design/com...

antd-mobile 的 tag 提供了 onChange 来判断标签是选中还是未选中状态。但如果存在多个 tag 标签,要每个 tag 写一个 onChage 函数来处理吗?如果我的 tag 是根据服务端的某些数据自动创建而非手动写出来的呢?又如何获取每个标签的选中状态?

目前好像没有提供接口可以区分到底是点击了哪个标签,所以我的困惑也就是如果有多个 tag 时,如何获取他们的统一状态。

阅读 4.6k
2 个回答
新手上路,请多包涵

已经字节解决了问题,我的方案如下:

const expertTags = experts.map((expert, i) => {
    const element = (
      <Tag key={i} onChange={(selected) => { tagsChange(selected, experts[i]) }}>
        {expert.profile.nickname}
      </Tag>
    )
    return element
  })

return (
    <div>
        { expertTags }
    </div>
)

其中 tagsChange 可以是一个有状态组件的成员函数,也可以是一个无状态组件的 action。在该函数中将 tagsChange 接收的第二个参数(i)作为数据索引来储存。当提交数据时根据索引遍历源数据就可以找到需要的内容了。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进