vue computed array 怎么设置set属性?

computed: {
            recallTagList() {
                if (this.result.length > 0) {
                    let newList = this.result.map(item => {
                        return {
                            value: item.name,
                            count: 0
                        }
                    })
                    return newList
                } else {
                    return []
                }
            }
        },

recallTagList变成了

[
    (
        value: 'zhangsan',
        count: 0
    ),
     (
        value: '李四',
        count: 0
    ),
     (
        value: 'zhangsan',
        count: 0
    )
    ...
]

我想改变其中一个的count,怎么设置cuputed的set

阅读 8.6k
3 个回答

你想怎么改变?根据名字改变还是其他条件改变。没搞懂你想干嘛。

如果你要在methods或者除了computed的地方动态修改recallTagList,最好不要把recallTagList放在computed,因为无论你在methods如何修改,最后都是以computed得到的值为准。不知道是不是我理解的那个意思,下方的代码只做参考

export default{
        data(){
            result:[
                {
                    value:'zhang',
                    count:88
                },{
                    value:'zhang',
                    count:55
                },{
                    value:'zhang',
                    count:99
                },
            ]
            recallTagList:[],
        },
        created(){
            this.recallTagListRaw();
        },
        mounted(){
            this.changeTagList();
        },
        methods:{
            recallTagListRaw() {
                if (this.result.length > 0) {
                    this.recallTagList = this.result.map(item => {
                        return {
                            value: item.name,
                            count: 0
                        }
                    });
                }
            },
            changeTagList(){
                this.recallTagList[2].count = 999;
            }
        }
    }

computed 正如它的名字一样,应该是由其他属性计算得出, 被用作只读。

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