vue中使用vant中PullRefresh 下拉刷新踩坑
问题
PullRefresh 的内容未填满屏幕时,只有一部分区域可以下拉:
<template>
  <div class="appCon">
    <van-pull-refresh
      class="pageRefresh"
      v-model="isLoading"
      success-text="刷新成功"
      @refresh="onRefresh"
    >
      <p>内容</p>
    </van-pull-refresh>
  </div>
</template>
解决
我们需要给 .van-pull-refresh__track 一个高度就可以了,代码如下
<style lang="scss" scoped>
.appCon {
  width: 100%;
  height: 100vh;
}
:deep(.pageRefresh) .van-pull-refresh__track {
  min-height: 100vh;
  background-color: #f5f5f5;
}
</style>
注意
在修改css样式时,出现了一个错误,一开始使用的是以下代码来修改 .van-pull-refresh__track 的样式,编译时会出现报错。
错误代码
/deep/ .pageRefresh .van-pull-refresh__track {
  xxx...
}
原因:>>>是深度选择器,可以作用到子组件中的样式,/deep/和::v-deep都是>>>的别名,在scss中不识别/deep/,因此报错。
之后改为了
::v-deep .pageRefresh .van-pull-refresh__track {
  xxx...
}
然后编译器报了提示如下
[@vue/compiler-sfc] ::v-deep usage as a combinator has been deprecated. Use :deep(<inner-selector>) instead.
之后修改为以下即可。
正确代码
:deep(.pageRefresh) .van-pull-refresh__track {
  xxx...
}

 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号