javascript - ralat penetapan data permulaan vue
漂亮男人
漂亮男人 2017-06-26 10:55:47
0
6
771

kod vue

<script>
import axios from 'axios';
export default {
    data() {
        return {
            titleList: [],
        }
    },
    created() {
        this.axios.get('XX').then(function(response) {
            console.log(response.data);
            this.titleList=response.data;
        }).catch(function (error) {
            console.log(error);
        });
    }
}
</script>

Laporkan ralat

TypeError: Cannot set property 'titleList' of undefined
Ralat jenis, tidak boleh menetapkan sifat yang tidak ditentukan,

Data

response.data ialah tatasusunan objek
Saya telah memulakan titleList, tetapi saya tidak tahu mengapa ia mengatakan ia tidak ditentukan, sila berikan saya jawapan

漂亮男人
漂亮男人

membalas semua(6)
伊谢尔伦

Penunjuk ini telah berubah Anda boleh mencetak ini untuk melihat kepada siapa ia ditunjuk


Penyelesaian

1. Gunakan fungsi anak panah
2. Simpan ini (biar _ini = ini)

巴扎黑
.then(res => {
    this.titleList = res;
})
过去多啦不再A梦
this.axios.get('XX')
    .then(function (response) {
      response=response.body;
      this.titleList=response.data;
    })
    .catch(function (error) {
      console.log(error);
})

Cuba ini. Jika ia tidak berfungsi, siarkan ralat dan lihat!

扔个三星炸死你

Penunjuk ini hilang, anda boleh menggunakan fungsi anak panah, atau anda boleh menggunakan pembolehubah untuk menyimpan ini let _this = this

習慣沉默

Apabila saya menggunakan axios untuk meminta data, saya ingat untuk memperkenalkan perpustakaan kelas axios secara global dalam fail masukan program main.js Selepas mengimportnya, cuba gunakan Vue.prototype.$http=axios untuk tingkat atas Anda boleh mencuba isu penunjuk ini yang ditunjukkan dalam jawapan yang diberikan Saya sudah biasa dengan sintaks es6, jadi fungsi anak panah biasanya digunakan dalam projek

阿神
axios.get('***').then((res) => {
    this.titleList=res.data;
});

Cuba cara ini

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan