满口金牙 2022-06-10 03:02 采纳率: 91.5%
浏览 92
已结题

vue 菜单异步的问题请教!我估计是异步的问题

vue 菜单异步的问题请教!我估计是异步的问题

  import { storeToRefs } from 'pinia';
  import useStore from '../store';
  const { menuLeft } = useStore()
  const { menuLeftData } = storeToRefs(menuLeft)
  const { getDataMenuLeft } = menuLeft    // pinia  store 向数据库调用数据的函数 

 onBeforeMount(() => {
    getDataMenuLeft('work_group/') // 从后端数据库获取 菜单数据,这里控制台 后出来

  })
  onMounted(()=>{
    menuLeftInit(1) // 初始化菜单, 这里控制台 先出来
  })

现在问题是 控制台显示, 先执行了 初始化菜单 函数,然后才读到了 菜单数据
正常进入没问题,当点右键刷新时,菜单就混乱了。


import { defineStore } from "pinia";
import { MenuLeft, Themes} from '../../types/data'
import { getMethod, postMethod } from '../../api/myHttp'
const menuLeftStore = defineStore('meunLeft',{
  state:()=>{
    return {
      menuLeftData : [] as Array<MenuLeft>,
    }
  },
  actions:{
    async getDataMenuLeft(url:string){  
      await getMethod(url).then(res=>{
        console.log('sssssssss11111111111111111',res)  // 这里控制台 后面才出来
        this.menuLeftData = res.data.menu
      })
    }
  }
})

  • 写回答

9条回答 默认 最新

  • CSDN专家-showbo 2022-06-10 09:39
    关注

    看题主代码用到了async+Promise对象,应该还是没完全理解,可以看下阮一峰老师的教程


    更改下代码结构确保数据加载完毕后再执行初始化操作就能解决。用下面2中方法之一。

    • 放到onMounted事件中,这样保证dom已经准备好,async getDataMenuLeft方法异步,会返回promise实例,在then中执行初始化能确保数据已经获取到从而能正确初始化
    
        onMounted(() => {
            getDataMenuLeft('work_group/').then(() => {
                menuLeftInit(1)
            })
        });
    
    • 将onMounted回调函数标记为异步方法,在方法体内用await等待getDataMenuLeft执行完毕,挂起起后续代码执行得到数据后再执行执行menuLeftInit初始化菜单
    
        onMounted(async () => {
            await getDataMenuLeft('work_group/');
            menuLeftInit(1)
        });
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(8条)

报告相同问题?

问题事件

  • 系统已结题 6月18日
  • 已采纳回答 6月10日
  • 创建了问题 6月10日

悬赏问题

  • ¥15 vc6.0中想运行代码的时候总是提示无法打开文件是怎么回事
  • ¥25 关于##爬虫##的问题,如何解决?:
  • ¥15 ZABBIX6.0L连接数据库报错,如何解决?(操作系统-centos)
  • ¥15 找一位技术过硬的游戏pj程序员
  • ¥15 matlab生成电测深三层曲线模型代码
  • ¥50 随机森林与房贷信用风险模型
  • ¥50 buildozer打包kivy app失败
  • ¥30 在vs2022里运行python代码
  • ¥15 不同尺寸货物如何寻找合适的包装箱型谱
  • ¥15 求解 yolo算法问题