添加到URL中的链接在jquery中的反应不起作用

时间:2016-11-14 06:46:17

标签: javascript jquery reactjs

我在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时,它不起作用。

2 个答案:

答案 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请求,您可能应该在组件生命周期方法中执行该请求,如componentWillMountcomponentDidMount(根据您的需要),将结果存储在React状态(或Redux状态)然后将其渲染为

{this.state.url && (
  <Link to={this.state.url} className="text-wrapper">
    <p>Custom page</p>
  </Link>
)}