Javascript 在`matchPath()`函数中出现不一致的`exact`行为

Javascript 在`matchPath()`函数中出现不一致的`exact`行为,javascript,reactjs,react-router,Javascript,Reactjs,React Router,我的应用程序中有两级导航。当任何子项处于活动状态时,顶级项应具有不同的颜色。为了实现这一点,我尝试使用matchPath()函数 顶级导航路线为/app/production,子项路线为/app/production/:id。 当用户打开/app/production/:id时,我希望matchPath()为/app/production返回true 这是我用于此检查的代码: matchPath(“/app/production”,{path:location.pathname,exact:fa

我的应用程序中有两级导航。当任何子项处于活动状态时,顶级项应具有不同的颜色。为了实现这一点,我尝试使用
matchPath()
函数

顶级导航路线为
/app/production
,子项路线为
/app/production/:id
。 当用户打开
/app/production/:id
时,我希望
matchPath()
/app/production
返回true

这是我用于此检查的代码:

matchPath(“/app/production”,{path:location.pathname,exact:false})

按照文档说明和
组件的工作原理,我需要将
精确的
参数设置为false-但我仍然得到
null
匹配对象。这就像
matchPath()
总是与
{exact:true}
一起工作一样。你知道我做错了什么吗


注:不,我不能用
来解决这个问题。

好的,我发现了问题。我把参数的顺序搞乱了。 而不是:

matchPath(“/app/production”,{path:location.pathname,exact:false})

应该是:


matchPath(location.pathname,{path:/app/production,exact:false})
请尝试还原参数的顺序:

matchPath(location.pathname, { path: "/app/production"})
此外,exact的默认值为false,因此我们可以跳过它