当前位置: 首页 > 知识库问答 >
问题:

前端 - vue 不会把响应刷新到屏幕,是怎么回事?

年运珧
2023-04-26
<template>
  <div>
    <input type="file" ref="fileInput" @change="onFileChange">
    <button @click="uploadFile">上传文件</button>
    <div v-if="response">
      <p>ID: {{ response[0][0].id }}</p>
      <p>创建时间: {{ response[0][0].created_at }}</p>
      <p>更新时间: {{ response[0][0].updated_at }}</p>
      <p>人员ID: {{ response[0][0].person_id }}</p>
      <p>哈希码: {{ response[0][0].hash_code }}</p>
      <p>文件路径: {{ response[0][0].file_path }}</p>
    </div>
  </div>
</template>

<script>
import { ref } from 'vue';

export default {
  setup() {
    const file = ref(null);
    const response = ref(null);

    const onFileChange = (e) => {
      file.value = e.target.files[0];
    };

    const uploadFile = async () => {
      const formData = new FormData();
      formData.append('file', file.value);

      try {
        const response = await fetch('http://127.0.0.1:6200/sample/image_file', {
          method: 'POST',
          body: formData
        });

        const data = await response.json();
        response.value = data;
      } catch (error) {
        console.error(error);
      }
    };

    return {
      file,
      response,
      onFileChange,
      uploadFile
    };
  }
};
</script>

上面的代码,在收到响应之后,并没有把结果显示到屏幕上,怎么办?

后端的响应如下:

[
    [
        {
            "id": 2,
            "created_at": "2023-04-16T15:42:27",
            "updated_at": "2023-04-16T15:42:27",
            "person_id": 1,
            "hash_code": "66dec605fc2e53c874dd678dffdbf123",
            "file_path": "person/image/66dec605fc2e53c874dd678dffdbf123/2544.jpg_wh860.jpg"
        }
    ]
]

以及遇到这样的情况,如何 debug 呢?

共有2个答案

阎雪峰
2023-04-26

企业微信截图_1682473819576.png
你在try中再此定义了response,导致response的作用域仅仅用于try中,你在return中response实际返回的仍然是第一个const response的值,值没有改变,你再try中把const response 去掉const应该就可以了。

叶晋
2023-04-26

你这里变量冲突了啊
image.png

 类似资料:
  • 我知道使用android Studio录制应用程序屏幕的方法,并成功获得了视频进行演示,但我的问题是,还有多少其他方法可以在没有root设备的情况下录制android屏幕?我想在我的屏幕录制中添加语音。

  • 最近在使用vue-admin-template开发后台管理系统,遇到动态路由刷新出现页面白屏问题 用户登录时通过角色获取角色路由并动态加载到router对象 在App.vue 中将保存于vuex中的路由信息刷新前存入到sessionStorage中,刷新后取出并重新加载路由; 重置路由方法 全局路由守卫 角色路由直接编写在JS文件中 出现问题正常登录能够进行路由跳转但是点击浏览器刷新出现页面白屏,

  • 我想重新绘制我的屏幕。到目前为止,它所做的只是在第一个屏幕上的头部应该在的地方显示一个点。这很好,但是我在代码中写了我想每秒将头部向下移动10个像素。我正在打印头部应该在的位置,在命令提示符中它显示y值确实在增加。但是在我的屏幕上,头部没有移动。 我尝试过使用revalidate方法,尝试扩展canvas类而不是jframe,我尝试过只为paint方法使用不同的类,我尝试过用paintCompon

  • 怎么强制用户刷新页面? 今天遇到一个问题,是一个公众号上面的项目,修改了一个问题,但是需要用户刷新才能看到效果?用什么技术可以实现?无论是小程序,公众号还是h5,只要我上传了修改过的代码,就可以让用户直接看到效果,不管用户是否强制刷新? 无论是小程序,公众号还是h5,只要我上传了修改过的代码,就可以让用户直接看到效果,不管用户是否强制刷新?

  • 可能重复如何关闭活动并返回到android中的上一个活动 问题是,我在当前使用的方法末尾添加finish(),整个应用程序就会关闭。 我希望通过按下手机上的后退按钮(我不想在应用程序中添加后退按钮)将其返回到上一个屏幕 我想从secondScreen()返回main

  • 如题: 刷新页面之后有概率 #/ 之后的地址消失, 1.token 保活没问题,token 过期的提示都在 2.和缓存无关,clear site data 之后刷新页面,提示 无token 3.没有除外 JS 代码的重定向,debugger 开了也没用 4.概率性出现,无痕浏览器里面也不影响 5.和单个电脑无关,多台电脑都能复现 复现条件: 1.单个账号登录 1H+ 无操作,可以提升触发 BUG