当前位置: 首页 > 工具软件 > nav-nuderline > 使用案例 >

uin-app踩的坑和自定义导航栏插件 uni-nav-bar 的bug与监听H5端返回上一页事件

苍烨然
2023-12-01

1
在components下的组件,图片路径用 /static/img/back.png 这样的根路径形式,不要用…/static 或者 …/…/static 的形式,不然很坑,有些平台不报错也不显示,有些找不到路径。

2
状态栏的高度

<template>
  <view>
      <view class="status_bar">
          <!-- 这里是状态栏 -->
      </view>
      <view> 状态栏下的文字 </view>
  </view>
</template>    
<style>
  .status_bar {
      height: var(--status-bar-height);
      width: 100%;
  }
</style>

具体链接:计算状态栏高度

3
swiper 有默认高度需要自己设置,不会根据里面的内容自动撑起来

4

横向scroll-view里面必须要加一个总的view ,把内容放到这个view里,否则无法滑动,并且这个总的view必须要给固定的宽度,否则也无法滑动

5
监听H5端返回上一页事件

// #ifdef H5
		mounted () {
		    if (window.history && window.history.pushState) {
		        // 向历史记录中插入了当前页
		        history.pushState(null, null, document.URL);
		        window.addEventListener('popstate', this.goBack, false);
		    }
		},
		destroyed () {
		    window.removeEventListener('popstate', this.goBack, false);
		},
		// #endif
		
		methods:{
			// #ifdef H5
			goBack () {
				history.pushState(null, null, document.URL);
				this.tiaohui()
			},
			// #endif
	}

6 使用uin-app提供的自定义导航栏插件 uni-nav-bar 的bug
uin-app提供的自定义导航栏插件 uni-nav-bar 点击左边箭头返回上一页事件 @clickLeft 在上传的体验版本和预览和真机测试不能使用,不执行此事件

找到 名叫 uni-nav-bar.vue的组件,并找到下边这行
methods: {
onClickLeft() {
this.KaTeX parse error: Expected 'EOF', got '}' at position 23: …lickLeft"); }̲, onClickRig…emit(“clickRight”);
}
}
把this. e m i t ( " c l i c k L e f t " ) ; 用 t h i s . emit("clickLeft"); 用this. emit("clickLeft");this.emit(“clickleft”);替换掉,并在引用组件的页面把 标签里的@clickLeft事件替换成@clickleft就可以使用了

调用子组件向父组件调用事件时,事件名称好像不能有大写字母,具体什么原因不清楚

 类似资料: