报错TypeError: Cannot use 'in' operator to search for 'scrollTop' in undefined

页面中点击按钮弹出弹出层,在弹出层中点击开始时间输入框,弹出vant的日历组件,结果打开控制台,发现有报错

img

img

而且弹出层有滚动,日历只在第一页的结尾弹出,不知道这两个是不是一个问题,页面中也没有定义scrollTop变量,求解~~

<template>
  <div class="bg-select-time">
    <div class="select-list">
      <div>{{ itemList.name }}</div>
      <div class="circle">
        <span class="date-item" @click="showCalendar = true">
          开始时间
        </span>
        <span class="date-line">-</span>
        <span class="date-item end-item" @click="showCalendar = true">
          结束时间
        </span>

      
      </div>
      <van-calendar
        position="right"
        v-model="showCalendar"
        allow-same-day="true"
        type="range"
        :min-date="startMax"
        :max-date="endMax"
        :default-date="defaultDate"
        @confirm="onConfirm"
      />
    </div>
  </div>
</template>
<script>

export default {
  name: "TimeSelect",
  props: {
    itemList: {
      type: Object,
      default: () => {},
    },
  },
  data() {
    return {
      isCheck: [],
      showCalendar: false,
      startMax: new Date(1970, 0, 1),
      endMax: new Date(),
      defaultDate: new Date(),
    };
  },
  created() {},
  mounted() {},
  methods: {
  },
};
</script>
<style lang="scss" scoped>
.bg-select-time {
}
</style>




把其他逻辑删除了,还是有报错,代码如上,把日历组件中传的所有值删除了也有报错

其实是比较低级的一个错误,方法传参错误。

代码贴出来看看,data没设置返回?

楼主解决了吗?我也遇到了同样问题,昨天尝试了一下在van-calendar 里加上v-if=showCalendar 就可以解决报错了 但是日期选择组件弹出的过渡效果会消失