Назначение преобразованных значений ' Base64` в Javascript в методе Vuejs

Назначение преобразованных значений ' Base64` в Javascript в методе Vuejs

27.12.2018 03:36:43 Просмотров 53 Источник

Я пытаюсь получить информацию о файле из inputв моем type="file"

Когда я запускаю эту функцию Vuejsв мой input: (event) => { var reader = new FileReader() reader.readAsDataURL(event.target.files[0]) let baseFile = '' reader.onload = function () { baseFile = reader.result console.log(baseFile) }; console.log(baseFile) const docs = { name: event.target.files[0].name, size: event.target.files[0].size, lastModifiedDate: event.target.files[0].lastModifiedDate, base64: baseFile } this.$emit('input', docs) } функция onload дает мне преобразованные файлы, но когда я делаю консоль за ее пределами, значение - это просто пустая строка. Как я могу получить и назначить моей переменной const docs. Помоги мне с этим разобраться. Спасибо.

У вопроса есть решение - Посмотреть?

Ответы - Назначение преобразованных значений ' Base64` в Javascript в методе Vuejs / Assigning converted `Base64` values in Javascript in Vuejs method

Является ответом!
Boussadjra Brahim

27.12.2018 03:59:58

Я рекомендую поместить остальную часть кода в блок этой функции после изменения его на функцию стрелки следующим образом :

input: (event) => {
  var reader = new FileReader()
  reader.readAsDataURL(event.target.files[0])
  let baseFile = ''
  reader.onload = () => {// <------ use arrow function
    baseFile = reader.result
    const docs = {
      name: event.target.files[0].name,
      size: event.target.files[0].size,
      lastModifiedDate: event.target.files[0].lastModifiedDate,
      base64: baseFile
    }
    this.$emit('input', docs)
  };


}
Закрыть X