7***@qq.com
7***@qq.com
  • 发布:2024-09-07 09:37
  • 更新:2024-09-07 12:22
  • 阅读:92

uniappX组件引用事件处理

分类:uni-app x
子组件代码: <template> <view> <view :class="[bgImage!=''?'none-bg text-white bg-img':'',bgColor]" style="text-align: center;"

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具体怎么实现. 我希望的效果是不要在父组件写事件给子组件传递逻辑什么的.

2024-09-07 09:37 负责人:无 分享
已邀请:
7***@qq.com

7***@qq.com (作者) - XXXXXXXXXXXXXXXXXXXXXXXXXXX

问题已经定位清楚,不是组件逻辑问题. :style="position: fixed;" 样式问题,点中了图标,事件没反应,去掉position: fixed; 问题解决了

7***@qq.com

7***@qq.com (作者) - XXXXXXXXXXXXXXXXXXXXXXXXXXX

<view @click="BackPage" v-if="isBack" :style="[{top: topBar + 'px'}]" >
<text class="icon-back" ></text>
</view>

这段代码问题,使用topBar 值渲染样式, @click="BackPage" 就没有效果,删除又可以.

要回复问题请先登录注册