首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >useSet 应用:操作列表与渲染列表

useSet 应用:操作列表与渲染列表

作者头像
copy_left
发布2020-04-24 18:26:58
发布2020-04-24 18:26:58
1.1K0
举报
文章被收录于专栏:方球方球

使用useSet 时,存在数据类型转换的问题。 渲染模板不支持set迭代, 需要将set 类型转换为Array。 对于列表被包裹在对象中的情况。 可以通过创建渲染列表的操作映射,实现利用useSet,操作渲染列表。

代码语言:javascript
复制
export default function usePopForm (props, ctx){

    const localNotifie = ref(props.notifie)
    // 列表set映射
    const [ set, { add, remove, update } ] = useSet(localNotifie.value.target)

    // 响应props
    watch(() => props.notifie, () => {
        localNotifie.value = cloneDeep(props.notifie)
        update(props.notifie.target)
    })
    
    // 同步set到渲染列表
    watch(() => set.value, () =>{
        localNotifie.value.target = [...set.value]
    })

    const onAddHandler = () => {
        add({
            label:"new tag",
            key: 10
        })
    }
    
    const onDelHandler = (val) =>{
        remove(val)
    }

    const onDialogEnterHandler = () => {
        ctx.emit('enter', localNotifie.value)
    }

    const onDialogCancelHandler = () => {
        ctx.emit('cancel')
    }
    

    return {
        localNotifie,
        onAddHandler,
        onDelHandler,
        onDialogEnterHandler,
        onDialogCancelHandler
    }
   
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档