热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

VUE使用事件总线EventBus时出现{__ob__:Observer}无法取值与渲染

需要完成的功能:组件A与组件B并不是同一界面,通过路由跳转,将一个对象stem从组件A传递到组件B。出现该问题现象的可能性有多种可能性,这只是引发该类问题的其中因素之一;由于解决本

需要完成的功能:组件A与组件B并不是同一界面,通过路由跳转,将一个对象stem组件A传递到组件B


出现该问题现象的可能性有多种可能性,这只是引发该类问题的其中因素之一;

由于解决本次问题的方式比较简单,故此随笔也比较水,仅为BUG记录。



事故简介:

可以使用console.log()在浏览器控制台可打印值,但是无法给定义在data中的字段赋值,更不能在页面渲染


事故现场:



  1. 组件A:

methods:{
submitForm(){
bus.$emit("stemList", stem)
}
}


  1. eventBus.js

import Vue from "vue";
export default new Vue()


  1. 组件B:

export default {
data () {
return {
questions:{}
}
},
created() {
bus.$on("stemList",val =>{
this.questiothis = val
console.log(val)
})
},
}


  1. 浏览器控制台打印的结果:

这里进行了两次重复操作,第一次路由跳转后控制台并没有输出内容,第二次跳转才打印如下内容,可见在第二次跳转后已经拿到值了,但是界面使用了{{ }}插值表达式并没有渲染出任何东西。

注意一句话:(第一次路由跳转后控制台并没有输出内容,第二次跳转才打印如下内容)


问题可能性分析:

由于进行了两次重复路由跳转操作,第一次无响应,第二次才打印数据,由此推断出可能是因为$emit发送数据时,$on还来不及创建,所以无法接收。


问题解决:

//这里加setTimeout延迟一下,使.$on的创建早于.$emit
setTimeout(()=>{
bus.$emit("stemList",res.data)
})

虽然控制台还是打印{ _ob__: Observer}但是已经可以进行赋值与渲染了



推荐阅读
  • CentOS7源码编译安装MySQL5.6
    2019独角兽企业重金招聘Python工程师标准一、先在cmake官网下个最新的cmake源码包cmake官网:https:www.cmake.org如此时最新 ... [详细]
  • 本文介绍了一款用于自动化部署 Linux 服务的 Bash 脚本。该脚本不仅涵盖了基本的文件复制和目录创建,还处理了系统服务的配置和启动,确保在多种 Linux 发行版上都能顺利运行。 ... [详细]
  • 深入解析Spring Cloud Ribbon负载均衡机制
    本文详细介绍了Spring Cloud中的Ribbon组件如何实现服务调用的负载均衡。通过分析其工作原理、源码结构及配置方式,帮助读者理解Ribbon在分布式系统中的重要作用。 ... [详细]
  • 本文探讨了SkyWalking和Prometheus两种流行的监控工具在应用埋点中的不同实现方式。SkyWalking采用主动推送(push)模式,而Prometheus则使用服务器拉取(server pull)模式。 ... [详细]
  • 使用C#开发SQL Server存储过程的指南
    本文介绍如何利用C#在SQL Server中创建存储过程,涵盖背景、步骤和应用场景,旨在帮助开发者更好地理解和应用这一技术。 ... [详细]
  • 如何配置Unturned服务器及其消息设置
    本文详细介绍了Unturned服务器的配置方法和消息设置技巧,帮助用户了解并优化服务器管理。同时,提供了关于云服务资源操作记录、远程登录设置以及文件传输的相关补充信息。 ... [详细]
  • DNN Community 和 Professional 版本的主要差异
    本文详细解析了 DotNetNuke (DNN) 的两种主要版本:Community 和 Professional。通过对比两者的功能和附加组件,帮助用户选择最适合其需求的版本。 ... [详细]
  • 在当前众多持久层框架中,MyBatis(前身为iBatis)凭借其轻量级、易用性和对SQL的直接支持,成为许多开发者的首选。本文将详细探讨MyBatis的核心概念、设计理念及其优势。 ... [详细]
  • UNP 第9章:主机名与地址转换
    本章探讨了用于在主机名和数值地址之间进行转换的函数,如gethostbyname和gethostbyaddr。此外,还介绍了getservbyname和getservbyport函数,用于在服务器名和端口号之间进行转换。 ... [详细]
  • 本文介绍如何通过Windows批处理脚本定期检查并重启Java应用程序,确保其持续稳定运行。脚本每30分钟检查一次,并在需要时重启Java程序。同时,它会将任务结果发送到Redis。 ... [详细]
  • 作为一名新手,您可能会在初次尝试使用Eclipse进行Struts开发时遇到一些挑战。本文将为您提供详细的指导和解决方案,帮助您克服常见的配置和操作难题。 ... [详细]
  • MySQL 用户创建失败的解决方案
    本文详细介绍了在 MySQL 中遇到用户创建失败问题时的解决方法,包括如何正确配置环境、执行命令以及常见错误排查技巧。通过逐步指导,帮助用户顺利添加和管理 MySQL 用户。 ... [详细]
  • MongoDB集群配置:副本集与分片详解
    本文详细介绍了如何在MongoDB中配置副本集(Replica Sets)和分片(Sharding),并提供了具体的步骤和命令,帮助读者理解并实现高可用性和水平扩展的MongoDB集群。 ... [详细]
  • 本文探讨了在不使用服务器控件的情况下,如何通过多种方法获取并修改页面中的HTML元素值。除了常见的AJAX方式,还介绍了其他可行的技术方案。 ... [详细]
  • 利用存储过程构建年度日历表的详细指南
    本文将介绍如何使用SQL存储过程创建一个完整的年度日历表。通过实例演示,帮助读者掌握存储过程的应用技巧,并提供详细的代码解析和执行步骤。 ... [详细]
author-avatar
手机用户2502875691_190
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有