TypeError: Cannot set properties of undefined (setting ‘xx‘)的问题及解决方法

 更新时间:2023年09月13日 09:42:29   作者:FBI HackerHarry浩  
这篇文章主要介绍了TypeError: Cannot set properties of undefined (setting ‘xx‘)的问题,本文给大家分享完美解决方案,需要的朋友可以参考下

TypeError: Cannot set properties of undefined (setting ‘xx‘) 

问题描述

我在编写axios请求后端数据的时候,一直出现下面的错误前端页面显示不出来。

报错:

TypeError: Cannot set properties of undefined (setting ‘xx’)

原因分析:

this指向的对象发生了变化(现在this代表axios对象),需要在函数前将this指向的对象提前保存一下

解决方案:

方法一:回调函数使用箭头函数来使用。(responde)=>{}

<template>
    <el-table :data="tableData" style="width: 100%" stripe>
        <el-table-column prop="name" label="姓名"  width="250" />
        <el-table-column prop="age" label="年龄" width="250" />
        <el-table-column prop="gender" label="性别" width="250" />
        <el-table-column prop="createTime" label="创建时间" width="250" />
        <el-table-column fixed="right" label="操作" width="250">
            <template #default>
                <el-button link type="primary" size="small">编辑</el-button>
                <el-button link type="primary" size="small">删除</el-button>
            </template>
        </el-table-column>
    </el-table>
</template>
<script>
    import axios from 'axios';
    export default {
        data() {
            return {
                tableData:[]
            }
        },
        created(){//为何 要在created 方法中 发请求,因为该方法 可以操作tableData属性
            // 解决方法一
            axios.get('http://localhost:9090/student') // url 请求后台的地址
                /*
                * .then(function (response) 这样写前端会报错
                * 报错信息:TypeError: Cannot set properties of undefined (setting 'tableData')at eval (Student.vue?401d:59:1)
                * 这样写是匿名函数,无法取到tableData的值,所以tableData的值为undefined,不能给undefined的变量赋值
                * 解决办法:1.改为箭头函数 2.将this重新赋值给新的变量
                */
                // .then(function (response) { //成功回调方法(访问后台成功,后台有数据返回,则进入该方法)
                .then(response=> { //成功回调方法(访问后台成功,后台有数据返回,则进入该方法)
                    console.log(response);
                    console.log(response.data)
                    this.tableData = response.data;
                })
                .catch(function (error) {//失败回调方法(访问后台失败,返回失败的信息,则进入该方法)
                    console.log(error);
                });
        },
        methods:{
        }
    }
</script>

方法二:暂存this。var th = this; 在内部用th.xx代替this.xx

   //解决办法二
        var th = this;
        axios.get('http://localhost:9090/student') // url 请求后台的地址
            .then(function (response) { //成功回调方法(访问后台成功,后台有数据返回,则进入该方法)
                console.log(response);
                console.log(response.data)
                th.tableData = response.data;
            })
            .catch(function (error) {//失败回调方法(访问后台失败,返回失败的信息,则进入该方法)
                console.log(error);
            });

到此这篇关于TypeError: Cannot set properties of undefined (setting ‘xx‘)的文章就介绍到这了,更多相关Cannot set properties of undefined内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 原生JS实现 MUI导航栏透明渐变效果

    原生JS实现 MUI导航栏透明渐变效果

    透明渐变导航是一种解决滚动条通顶的变通方案。这篇文章主要介绍了原生JS实现 MUI导航栏透明渐变效果,需要的朋友可以参考下
    2017-11-11
  • Javascript显示和隐藏ul列表的方法

    Javascript显示和隐藏ul列表的方法

    这篇文章主要介绍了Javascript显示和隐藏ul列表的方法,涉及javascript针对页面元素遍历及显示与隐藏的实现技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-07-07
  • 解决低版本的浏览器不支持es6的import问题

    解决低版本的浏览器不支持es6的import问题

    下面小编就为大家分享一篇解决低版本的浏览器不支持es6的import问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-03-03
  • 一文让你彻底弄懂js中undefined和null的区别

    一文让你彻底弄懂js中undefined和null的区别

    JavaScript是一门动态类型语言,元素除了表示存在的空值外,还有可能根本就不存在,这就是undefined存在的原因,这篇文章主要给大家介绍了关于undefined和null区别的相关资料,需要的朋友可以参考下
    2022-03-03
  • 利用babel将es6语法转es5的简单示例

    利用babel将es6语法转es5的简单示例

    Babel是一个广泛使用的转码器,babel可以将ES6代码完美地转换为ES5代码,所以下面这篇文章就来给大家详细介绍了关于利用babel将es6语法转es5的相关资料,文章通过示例介绍的非常详细,需要的朋友可以参考下。
    2017-12-12
  • javascript判断用户浏览器插件安装情况的代码

    javascript判断用户浏览器插件安装情况的代码

    javascript判断用户浏览器插件安装情况的代码,需要的朋友可以参考下。
    2011-01-01
  • JavaScript Canvas实现图片局部放大镜效果

    JavaScript Canvas实现图片局部放大镜效果

    这篇文章主要为大家详细介绍了如何使用JavaScript Canvas实现图片局部放大镜效果,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2024-03-03
  • 详解微信小程序中组件通讯

    详解微信小程序中组件通讯

    在本篇文章里我们给大家分享了微信小程序中组件通讯的相关知识点以及相关实例代码,有兴趣的朋友们学习分享下。
    2018-10-10
  • JS中prototype的用法实例分析

    JS中prototype的用法实例分析

    这篇文章主要介绍了JS中prototype的用法,实例分析了JS中prototype的常见使用技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-03-03
  • 微信小程序实现打卡日历功能

    微信小程序实现打卡日历功能

    这篇文章主要为大家详细介绍了微信小程序实现打卡日历功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-11-11

最新评论