请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

保存了进度但是百分比不能更新的问题

你好,我想问一下保存了进度但是百分比不能更新的问题。
代码如下,在mounted的时候调用initPage方法

initPage () {
      this.book.ready.then(() => {
        return this.book.locations.generate(750 * (window.innerWidth) / 375) * (getFontSize(this.setFileName) / 16)
      }).then((res) => {
        this.setBookAvailable(true)
        this.refreshLocation()
      })
    },

refreshLocation的代码如下

refreshLocation () {
      console.log(this.currentBook.rendition.currentLocation())
      const currentLocation = this.currentBook.rendition.currentLocation()
      const startCfi = currentLocation.start.cfi
      const progress = this.currentBook.locations.percentageFromCfi(startCfi)
      this.setProgress(Math.floor(progress * 100))
      setLocation(this.fileName, startCfi)
    },

报错如下
Uncaught (in promise) TypeError: Cannot read property ‘currentLocation’ of undefined

正在回答 回答被采纳积分+3

1回答

Sam 2019-10-08 08:50:02

你好,这里添加一个 currentLocation 的非空判断即可

0 回复 有任何疑惑可以回复我~
  • 提问者 慕莱坞9699021 #1
    老师,这样子还是报错,因为他是在获取的时候报错,也就是this.currentBook.rendition.currentLocation()这一句就报错了,无法获取到这个值,所以就算加一个非空判断也是会报错的,也无法获取到当前的位置。我想应该是函数执行先后的问题,this.book.ready执行的时候,页面还没有进行渲染,但是不知道如何解决。
    回复 有任何疑惑可以回复我~ 2019-10-08 20:51:05
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信