首页 > 解决方案 > Vue从选择框@changed后删除当前数据值

问题描述

我有一个获取记录并将其显示到图表的查询。我已经可以显示记录,但是当我单击没有结果的记录,然后单击有结果的上一个记录时。vue 中的data属性将当前结果添加到附加前一个结果中。我想要的是当我从select标签中选择另一个选项时,当前数据将被删除,并将用当前结果替换为新数据。

这是我的图表 在此处输入图像描述

当我Vince从选择框中单击时,我得到了确切的数据和图表。这是我的 Vue devtools 详细信息

在此处输入图像描述

但是当我点击mark没有数据或结果的第二位老师 时在此处输入图像描述

我以前的数组中的数据仍然在那里,当我点击返回到vince其中有数据时,结果是

在此处输入图像描述

图表是这样的

在此处输入图像描述

我现在的代码不起作用

   getdata() {
                    let self = this
                    axios.get('/getGraph/' + self.teacher)
                        .then(({
                            data
                        }) => {
                            if(data.length > 0){
                                data.splice()
                            }
                            else{
                                data.date.forEach(x => {
                                self.dataSource.data.push(x);
                            });
                            }
                        })
                }

我的原始代码是这个

     getdata() {
                    let self = this
                    axios.get('/getGraph/' + self.teacher)
                        .then(({
                            data
                        }) => {
                            data.date.forEach(x => {
                                self.dataSource.data.push(x);
                            });
                        })
                },
                getTeachers() {
                    axios.get('getTeachers')
                        .then((res) => {
                            this.teachers = res.data
                        })
                        .catch((e) => {
                            console.log(e)
                        })
                }

有人可以告诉我出了什么问题,我该如何实现我想做的事情?非常感谢。

标签: javascriptarraysvue.js

解决方案


每次从服务器接收到这样的数据时,您都必须清除数据。

 axios.get('/getGraph/' + self.teacher)
        then(({
                            data
        }) => {
        self.dataSource.data = []
        data.date.forEach(x => {
            self.dataSource.data.push(x);
        });
 }) 

推荐阅读