uni-app 运行报JS错误 topWindow视图中使用match-media组件异常

发布于 1周前 作者 wuwangju 来自 Uni-App

uni-app 运行报JS错误 topWindow视图中使用match-media组件异常

操作步骤

在topWindow视图中,使用了组件match-media

预期结果

希望可以恢复之前

实际结果

异常报错提示 $page 不存在

bug描述

在topWindow视图中,使用了组件match-media,编译运行后浏览器报错,之前版本都是正常的,而且这个bug之前几年有人提出过,现如今升级后依然出现…希望尽快修正

图片

开发环境、版本号、项目创建方式

信息
产品分类 uniapp/H5
PC开发环境操作系统 Windows
PC开发环境操作系统版本号 windows10
HBuilderX类型 正式
HBuilderX版本号 4.36
浏览器平台 Chrome
浏览器版本 130.0.2849.68 (正式版本) (64 位)
项目创建方式 HBuilderX

4 回复

希望官方给与解答一下,谢谢


目前4.29版本没问题,从4.29以后的版本都有这个问题。

我发了2个这个错误,都没人理我。。。你解决了吗

针对您提到的uni-app中运行报错,特别是在topWindow视图中使用match-media组件异常的问题,这通常涉及到组件的兼容性或者使用方式不当。以下是一个可能的解决方案代码示例,以及关于如何在uni-app中正确使用match-media组件的一些指导。

首先,确保您的uni-app项目已经正确引入了match-media组件。在uni-app中,match-media组件用于根据媒体查询的结果动态改变样式或执行逻辑。但是,请注意,match-media组件的使用可能受限于特定的平台或视图(如topWindow视图)。

示例代码

  1. 确保在pages.json中配置了topWindow
{
  "pages": [
    {
      "path": "pages/index/index",
      "style": {
        "navigationBarTitleText": "首页",
        "app-plus": {
          "topWindow": true
        }
      }
    }
  ]
}
  1. 在页面中使用match-media组件
<template>
  <view>
    <match-media :query="'screen and (min-width: 600px)'" @change="handleMediaChange">
      <template #matches>
        <view>屏幕宽度至少600px</view>
      </template>
      <template #not-matches>
        <view>屏幕宽度小于600px</view>
      </template>
    </match-media>
  </view>
</template>

<script>
export default {
  methods: {
    handleMediaChange(event) {
      console.log('Media query matched:', event.detail.matches);
    }
  }
}
</script>

<style>
/* 样式可以根据媒体查询结果动态调整 */
</style>

注意事项

  • 平台差异match-media组件在某些平台上可能表现不一致,特别是在topWindow视图中。请确保在目标平台上进行测试。
  • 查询语法:确保媒体查询的语法正确无误。
  • 事件处理@change事件用于监听媒体查询结果的变化,可以根据需要进行处理。

如果上述代码在topWindow视图中仍然出现问题,建议检查以下几点:

  • 确认uni-app和依赖库的版本是否最新,有时候bug会在新版本中修复。
  • 查阅uni-app的官方文档或社区,看看是否有其他开发者遇到并解决了类似的问题。
  • 尝试在普通的页面视图中使用match-media组件,看是否能正常工作,以排除topWindow视图特有的问题。
回到顶部