Next.js 导航点击添加样式问题

在这里插入图片描述
由于next.js的路由由自带的Link组件实现,并且通过点击无法获取到路由跳转标签,故不能通过点击addClass的方法动态实现添加样式,并且由于next.jsSSR的原因未生成window.document不能引入jquey,解决方法:获取当前路由,判断是否与Link标签路由相同,如果相同则设置样式,代码如下:
首页文件获取当前路由并传递

import React,{Component} from 'react'
import Layout from '../components/Layout'
export default class extends React.Component {


  render() {

    return (
      <Layout url={this.props.url.pathname}>
        <p>这是首页</p>
         </ Layout>
    )
  }
}

Link标签所在组件获取路由,并做判断是否设置样式

 <a     style={{ textDecoration: 'none', width: '100%', height: '26px', display: 'inline-block', textAlign: 'center', fontSize: '13px', lineHeight: '26px',fontWeight:'600',color:(this.props.url==='/')?'white':'black',backgroundColor:(this.props.url==='/')?'#d33333':'none'}} >首页</a>  

关键:

(this.props.url===’/’) this.props.url接收路由,根据路由渲染样式

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值