style="[{height:CustomBar + 'px'}]">
<view @click="BackPage" v-if="isBack" style="position: fixed;" :style="[{top:topBar + 'px'}]">
<text class="icon-back"></text>
</view>
<view style="display: flex; justify-content: center; align-items: center; height: 100vh;">
<view :style="[{top: topcontent + 'px'}]" style="text-align: center; position: fixed; font-size: 1rem;">
<slot name="content"></slot>
</view>
</view>
<slot name="right"></slot>
</view>
</view>
</template>
<script>
export default {
triggerCustomEvent() {
this.$emit('BackPage');
},
data() {
return {
topBar: uni.getStorageSync('screenHeight') ? uni.getStorageSync('screenHeight') 0.1 0.6 : 5,
CustomBar: uni.getStorageSync('screenHeight') ? uni.getStorageSync('screenHeight') 0.1 : 70,
topcontent: uni.getStorageSync('screenHeight') ? uni.getStorageSync('screenHeight') 0.1 * 0.6 : 35,
};
},
name: 'cu-custom',
computed: {
},
props: {
bgColor: {
type: String,
default: ''
},
isBack: {
type: [Boolean],
default: false
},
bgImage: {
type: String,
default: ''
},
},
methods: {
BackPage() {
console.log('返回>')
uni.navigateBack({
delta: 1
});
}
}
}
</script>
父组件代码:
<view>
<cu-custom bgColor="bg-gradual-blue" :isBack="true" >
<template v-slot:content>工作台 </template>
</cu-custom>
</view>
在父组件上操作:
点击icon-back按钮图标,并不能触发BackPage事件,而在uniapp是可以的.uniapp具体怎么实现. 我希望的效果是不要在父组件写事件给子组件传递逻辑什么的.
2 个回复
7***@qq.com (作者) - XXXXXXXXXXXXXXXXXXXXXXXXXXX
问题已经定位清楚,不是组件逻辑问题. :style="position: fixed;" 样式问题,点中了图标,事件没反应,去掉position: fixed; 问题解决了
7***@qq.com (作者) - XXXXXXXXXXXXXXXXXXXXXXXXXXX
<view @click="BackPage" v-if="isBack" :style="[{top: topBar + 'px'}]" >
<text class="icon-back" ></text>
</view>
这段代码问题,使用topBar 值渲染样式, @click="BackPage" 就没有效果,删除又可以.