动态路径 NavLink React

gyo*_*o88 2 javascript router reactjs react-router react-router-dom

我正在寻找一种方法使 NavLink 的“to”属性动态反应。

let url = 'localhost'=='localhost'? 'foo':'';
<Router>
 <NavLink to={url+'/'}>Home</NavLink>
</Router>
Run Code Online (Sandbox Code Playgroud)

可以工作,但对于每个新的渲染反应,它都会向现有的渲染添加一个新的 url。 http://localhost/foo 渲染后 http://localhost/foo/foo ...

谢谢

jos*_*ing 5

也尝试在 URL 前面加一个斜杠...

<NavLink to={'/'+url+'/'}>Home</NavLink>
Run Code Online (Sandbox Code Playgroud)

前面没有URL表示“相对于当前路径”,前面有URL表示“相对于域名”

或者,在您的情况下获得相同结果的更好方法可能是将斜杠放在前面foo- 例如:

let url = 'localhost'=='localhost'? '/foo':''; // <=== added slash 
<Router>
 <NavLink to={url+'/'}>Home</NavLink>
</Router>
Run Code Online (Sandbox Code Playgroud)