You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React中如何用router.pathname.startsWith检测多个链接?

解决router.pathname多路径前缀检测问题

你之前的写法没用到startsWith()的正确参数规则——这个方法的第二个参数是检测的起始位置,不是备选的前缀字符串,所以你传的"/webinars/"会被自动转为数值(最终变成0,等价于默认起始位置),导致只会检测第一个前缀"/blogs/"。

要实现多前缀检测,你可以这么做:

  1. 把所有需要检测的前缀放到一个数组里
  2. 用数组的some()方法遍历,对每个前缀调用startsWith(),只要有一个匹配就返回true

示例代码:

// 定义需要检测的前缀列表
const targetPrefixes = ["/blogs/", "/webinars/"];
// 检测当前路径是否匹配任意一个前缀
const isMatched = targetPrefixes.some(prefix => router.pathname.startsWith(prefix));

如果router.pathname是"/blogs/2024/tech"或者"/webinars/online-event"这类路径,isMatched会返回true;如果是"/about"这类不匹配的路径,则返回false。

内容的提问来源于stack exchange,提问作者Teik Cheah

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 09:24:55