我从来没有在 HTML 或 React 中将任何东西与任何东西联系起来。也就是说,您似乎没有什么选择:
选项 1
有条件地呈现div
notto
属性。如果 codition 为 true 则显示Link
div 如果不显示 div 则 no Link
。这可能是更“常见”的方式来做到这一点。如果您div
不像“我的内容”那么简单,我会将其移至功能组件中。并使用该组件而不是<div>MyContent</div>
如下所示。
import { Link } from 'react-router';
{ condition ?
(
<Link to='/some/other/url'>
<div>My Content</div>
</Link>
) : ( <div>My Content</div> )
}
选项 2
执行您所做的操作,但使用 the#
而不是空字符串。
import { Link } from 'react-router';
<Link to={condition === true ? '/some/other/url' : '#'}>
<div>
my content
</div>
</Link>
选项 3如果条件为假,则禁用链接。
import { Link } from 'react-router';
//a better name might be in order here
const handleLinkDisable = (e) => {
const { condition } = this.state; //just assuming it comes from state
if(condition){ e.preventDefault(); }
};
<Link to='/some/other/url' onClick={handleLinkDisable}>
<div>My Content</div>
</Link>
希望有帮助。