vue组件使用better-scroll,需要第二次点击,才能滚动,求指点。

1.问题描述

我的数据是用axios异步获取的。并别数据已经获取到了,可以在页面展示了。父元素的高度为389px,子元素的高度为1123px。按照better--scroll的滚动原理,页面应该是可以滚动的。可是滚动效果不好。(具体见下图)

2问题展示

问题展示图

从图中可以看到子元素的高度1123px明显高于父层的高度389px,可就是不能滚动。

3.第一次点击“评论”,不能滚动。但是当我点击“食物”,再返回点击“评论”的时候(第二次点击),它居然可以滚动了

图片展示:
图片描述

4代码展示

----"评论"页面代码
<template>
  <div class="sellerWrpper" ref="sellerRef">
    <div class="seller-wrapper">
    .......\\中间代码省略
    </div>
</template>
------------------
<script>
  import BScroll from 'better-scroll'
  import {mapGetters} from 'vuex'
  export default {
    created () {
      this.$store.dispatch('getSeller') //提交dispatch 
      this.$nextTick(() => {  //异步初始化better-scroll
        this.scroll = new BScroll(this.$refs.sellerRef, {
          click: true
        })
      })
    },
    computed: {
      ...mapGetters(['seller']),  //从vuex中获取数据
    },
  }
</script>

5."评论"组件获取数据流程

  • 1.在“评论”组件的created中提交dispatch,

  • 2.然后通过actions调用一个封装好的axios

  • 3.然后再触发mutations来提交状态改变state中的数据,

  • 4.然后在组件的计算属性中获取state的数据并渲染在页面上

阅读 3.6k
1 个回答

大哥解决了吗?我在$nextTick里面加了一层setTimeout好像解决了。不过感觉挺别扭的,不知道还有没别的方法。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题