我正在写一个React.js应用程序,我想使用react-router包中的Link
组件,以便有条件地将用户重定向到另一个页面。如果某些条件不成立,我会将to
属性设置为空字符串,这样可以工作,不会导致页面重载,页面会保持在原来的位置。但我想知道这是否是最佳实践?
这是我的解决方案:
import { Link } from 'react-router';
<Link to={condition === true ? '/some/other/url' : ''}>
<div>
my content
</div>
</Link>
我在documentation中没有看到任何关于空字符串输入的内容。
4条答案
按热度按时间s8vozzvw1#
我从来没有在HTML或React中将某个东西链接到任何东西。也就是说,你似乎没有什么选择:
div
而不是to
属性。如果条件为真,则显示Link
(带div),如果不显示div(不带Link
)。这可能是更"常见"的方法。如果您的div
不像"我的内容"那样简单,我会将其移到功能组件中。并使用该组件代替下面所示的<div>MyContent</div>
。#
而不是空字符串。希望能有所帮助。
a8jjtwal2#
to
是Link
的必选属性,如果url为空,最好隐藏整个组件:如果出于某种奇怪的原因,你需要一个空的url,你可以传递一个空格:
jtjikinw3#
使用
<BUTTON>
代替,你将有相同的伪像:活动,:焦点作为链接,它将摆脱警告。一般安装:eslint; sonarlint扩展...他们会给予你像这样的小错误的建议和行业标准。
58wvjzkj4#
使用“javascript.void(0)”而不是使用空字符串。
从“React路由器”导入{Link};
我的内容
请参考文档What does "javascript:void(0)" mean?