采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
老师,按您说的,再EbookReader可以正常获取this.currentBook 麻烦老师帮我看下代码可以吗,感激。在EbookSlideContents无法获取。https://gitee.com/kaiwenxiao/vue-ebook
你目前的源码:
mounted() {
console.log(
this
.currentBook)
// null
'asd'
)
// asd
},
这样打印是获取不到currentBook的,因为下载电子书后才会设置currentBook,这个过程在Vue渲染DOM之后,所以在mounted的时候currentBook并没有被赋值,因而打印结果为null,要监听currentBook的状态可以使用watch进行监听,代码如下:
watch: {
currentBook(book) {
'new currentBook'
, book);
}
这样就可以监听currentBook的变化了:)
老师,按您的方法成功获取到currentBook了,不过不是很明白在此处需要watch currentBook待加载完毕才能调用它的方法,而在其它组件却不需要watch就可以调用,谢谢老师
其他组件是在currentBook获取后才进行渲染的,所以其他组件中可以直接获取到currentBook,如果还有不理解的,你可以具体举个例子看下
那这里做doSearch需要用到currentBook.ready怎么办?currentBook是null啊,视频里这样写为什么没出错呢,我这里就一直报错
好的,代码调试过了,没什么大问题,把EbookSlideContents.vue源码中27-30行做一下调整就行了,代码如下:
<
div
class
=
"slide-contents-book-info-wrapper"
>
"slide-contents-book-title"
>{{metadata && metadata.title}}</
"slide-contents-book-author"
>{{metadata && metadata.creator}}</
</
增加metadata的判断即可消除报错,出错原因是metadata是异步写入的,下载电子书解析后才会获得metadata,所以这个过程在Vue渲染DOM之后,如果不加metadata的判断会导致浏览器抛出异常
谢谢老师,不过我在这里问题主要是this.current Book打印是null,很奇怪,想请教老师
EbookReader组件可以正常访问currentBook,很奇怪,拜托老师了!
见上面的回复?
登录后可查看更多问答,登录/注册
Vue全家桶+最新前端技术+前后端分离架构,完整项目流程
2.4k 12
3.7k 10
2.1k 3
1.6k 24
1.6k 23
购课补贴联系客服咨询优惠详情
慕课网APP您的移动学习伙伴
扫描二维码关注慕课网微信公众号