我在react中创建了一个<Link to=""></Link>
元素,并希望在页面呈现时添加url,并且此元素将变为锚元素。但是,它似乎不起作用。以下是代码:
React code
<Link to="" className="text-wrapper">
<p>Custom page</p>
</Link>
jQuery code
$('#customId').find('a').attr('href', customUrl);
网址不会在任何地方重定向。我使用过Link因为我不希望在导航时加载页面,我在其他地方使用过它并且工作正常。在其他地方,我直接为<Link to=""></Link>
元素提供了值<Link to="/about-us"></Link>
。但是,当使用jquery给出url时,它不起作用。
答案 0 :(得分:1)
原因是,<Link/>
是反应成分而不是DOM
元素。 jQuery
选择器引擎旨在与DOM
元素一起使用。
<强>解决方案强>
就这样做
$.ajax('')
.done((data) => {
...
this.setState({customUrl: 'your url here'})
})
<Link to={this.state.customUrl} className="text-wrapper">
<p>Custom page</p>
</Link>
答案 1 :(得分:0)
如果URL来自AJAX请求,您可能应该在组件生命周期方法中执行该请求,如componentWillMount
或componentDidMount
(根据您的需要),将结果存储在React状态(或Redux状态)然后将其渲染为
{this.state.url && (
<Link to={this.state.url} className="text-wrapper">
<p>Custom page</p>
</Link>
)}