好客租房157-封装顶部导航栏组件(4添加props校验)

添加props校验

导入propTypes

import React from 'react'
import { NavBar } from 'antd-mobile'

// 导入 withRouter 高阶组件
import { withRouter } from 'react-router-dom'
// 导入 props 校验的包
import PropTypes from 'prop-types'
import "./index.scss"

// 添加props校验
NavHeader.propTypes = {
    children: PropTypes.string.isRequired,
    onLeftClick: PropTypes.func
  }
 function NavHeader({children,history,onLeftClick}) {
 // 默认点击行为
 const defaultHandler = () => history.go(-1)


 return (
   <NavBar
     className="navbar"
     mode="light"
     icon={<i className="iconfont icon-back" />}
     onLeftClick={onLeftClick || defaultHandler}
   >
     {children}
   </NavBar>
 )
}
//函数的返回值也是一个组件
export default withRouter(NavHeader)

运行结果

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
***于Vue.js的跨平台开发框架,可以用于开发iOS、Android和Web应用。要封装顶部导航栏,可以通过以下步骤进行: 1. 在uniapp的项目目录中找到`/common`或者`/components`文件夹,没有的话可以自己创建一个。 2. 在该文件夹下创建一个新的Vue组件,比如命名为`TopNavBar.vue`。 3. 在`TopNavBar.vue`组件中,编写顶部导航栏的布局和样式。 4. 使用props接收需要的参数,比如导航栏的标题、是否显示返回按钮等。 5. 在`TopNavBar.vue`组件中,处理返回按钮点击事件,并通过emit向父组件传递事件。 6. 在需要使用顶部导航栏的页面中,引入`TopNavBar.vue`组件,并传入相应的参数。 以下是一个简单的示例代码: ```vue <template> <div class="top-nav-bar"> <div class="back-btn" @click="handleBack"> 返回 </div> <div class="title">{{ title }}</div> </div> </template> <script> export default { props: { title: String, showBackBtn: { type: Boolean, default: false } }, methods: { handleBack() { this.$emit('back'); } } } </script> <style scoped> .top-nav-bar { display: flex; align-items: center; justify-content: space-between; padding: 10px; background-color: #333; color: #fff; } .back-btn { cursor: pointer; } .title { font-size: 18px; font-weight: bold; } </style> ``` 使用时,在需要的页面中引入组件,并传递相应的参数: ```vue <template> <view> <top-nav-bar title="顶部导航栏" show-back-btn @back="handleBack"></top-nav-bar> <!-- 页面内容 --> </view> </template> <script> import TopNavBar from '@/components/TopNavBar.vue' export default { components: { TopNavBar }, methods: { handleBack() { // 处理返回按钮点击事件 } } } </script> <style> /* 样式 */ </style> ``` 通过以上步骤,你就可以在uniapp中封装顶部导航栏组件,并在需要使用的页面中引入和使用了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值