2016-11-14 76 views
-1

我创建一个<Link to=""></Link>元素反应,希望在页面呈现时添加URL和这个元素变成一个锚元素。但是,它似乎并不奏效。下面是代码:添加到链接URL在jQuery的反应不起作用

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

ID缺失链接 – Bharat

+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> 
+0

我的自定义网址是需要放在那里的AJAX请求的结果。一旦LINK组件被渲染,它是如何完成的。 –

+0

ajax调用和组件构建在不同的文件中。 –

+0

@AbhishekDhanrajShahdeo如果这是你需要将结果传递一个'prop'这个组件或使用的情况下'redux' –

0

如果URL来自AJAX请求你应该做的像componentWillMountcomponentDidMount组件生命周期方法的要求(根据您的需求),门店在React状态(或Redux状态)下的结果,然后将其渲染为:

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