Javascript 反应路由器,一条无路可走的链路

Javascript 反应路由器,一条无路可走的链路,javascript,reactjs,react-router,Javascript,Reactjs,React Router,在HTML中,我可以使用或来创建一个不会指向任何地方的链接。如何使用react routerLink的to属性执行相同的操作?不允许传递未定义或空,只能传递字符串或对象。传递#无效,传递空字符串会导致与传递/相同的行为。我需要有条件地这样做,所以有时候Link会有一个真实的路径名,有时候它应该是空的,所以我不能使用普通的a元素。我想到的解决方法是有条件地呈现a,而不是Link,或者传递类似 (location: Location) => ({ ...location, href: '#'

在HTML中,我可以使用
来创建一个不会指向任何地方的链接。如何使用react router
Link
to
属性执行相同的操作?不允许传递
未定义
,只能传递字符串或对象。传递
#
无效,传递空字符串会导致与传递
/
相同的行为。我需要有条件地这样做,所以有时候
Link
会有一个真实的路径名,有时候它应该是空的,所以我不能使用普通的
a
元素。我想到的解决方法是有条件地呈现
a
,而不是
Link
,或者传递类似

(location: Location) => ({ ...location, href: '#' })

对于
to
属性,是否有更优雅的方法?

这是否回答了您的问题@vivalldi,不,我写过,空字符串在
链接
组件中被视为
/
,因此它会将用户重定向到我的应用程序主页,我只希望它不做任何正确的事情,顶部答案中的选项2显示了如何有条件地设置link@vivalldi,但如果我将
设置为
属性为空字符串或空格,按下链接将用户重定向到我的应用程序主页面,即
/
路由。我不想要这个,我想要链接什么都不做。就像我有一个页面
/profile
一样,我想按链接并停留在
/profile
上,使用空格作为
to
属性将路由更改为
/
。在这种情况下,只需使用选项3。添加一个检查条件的
onClick
处理程序。如果是条件,则使用“阻止默认值”以阻止导航(可能是
preventDefault
有一些问题,但我必须深入react router文档以了解具体情况。这是否回答了您的问题?@vivalldi,不,我写道,空字符串在
链接
组件中被视为
/
,因此它会将用户重定向到我的应用程序主页,我只希望它什么都不做。)gCorrect,顶部答案中的选项2显示了如何有条件地设置link@vivalldi,但如果我将
设置为
属性为空字符串或空格,则按链接会将用户重定向到我的应用程序的主页,即
/
路由。我不希望这样,我希望链接什么也不做。就像我有一个页面
/profile
我想按下链接并停留在
/profile
上,使用空格作为
to
属性将路由更改为
/
。在这种情况下,只需使用选项3。您添加一个
onClick
处理程序来检查条件。如果是条件,则使用“阻止默认值”来阻止导航(可能是
preventDefault
有一些问题,但我必须深入查看react router文档以了解细节。)