Я пытаюсь загрузить файл JSON в vue.js
через FileReader
. Файл JSON загружается через файл ввода формы BoostrapVue как экземпляр объекта javascript File. Вот мой текущий App.vue
файл:
<template>
<div v-if="fileUploaded">
<div class="rf">
<ChildComponent v-bind:json="json"/>
</div>
</div>
<div v-else>
<!-- BoostrapVueFileInput -->
</div>
</template>
<script>
import ChildComponent from './ChildComponent.vue'
export default {
name: 'rf',
data () {
return {
fileUploaded: false,
file: null,
json: null
}
},
methods: {
read() {
var reader = new FileReader();
reader.onload = function(event) {
this.json = JSON.parse(event.target.result);
};
reader.readAsText(this.file);
}
}
}
</script>
Как только я обновлю файл JSON, json
должен быть обновлен вместе с ним и передан в ChildComponent
, который отобразит некоторую его часть. К сожалению, результирующее свойство json
пусто, как если бы оно не было обновлено методом read()
. Я не понимаю, где я не прав.