下面的代码:
import React, { Component } from 'react';
import '../styles/CountryDetails.css';
import { Link } from 'react-router-dom';
import { IconContext } from 'react-icons';
import { GoArrowRight } from 'react-icons/go';
import { FaPlane } from 'react-icons/fa';
class CountryDetails extends Component {
constructor(props) {
super(props);
this.state = {
countryData: props.countryData
}
}
render() {
console.log(this.state.countryData);
return (
<div>
<h1 className="display-3 text-center my-5">{this.state.countryData.countryClassification}</h1>
<div className="CountryDetail">
<div className="cards shadow-1 container">
<div className="row vertical-align">
<div className="col-2 text-center">
<IconContext.Provider value={{ color: '#A9A9A9', className: 'icon-hover icon-size'}}>
<div>
<FaPlane />
</div>
</IconContext.Provider>
</div>
<div className="col-8">
<h4>Airfare | Car Rental | Hotel Booking Site</h4>
{this.state.countryData.topAirfareCarRentalHotelBookingSite1 ? null : <span className="category-status">Under Construction...</span>}
</div>
<div className="col-2 text-center">
<IconContext.Provider value={{ className: 'show-hover icon-arrow-size'}}>
<div>
<GoArrowRight />
</div>
</IconContext.Provider>
</div>
</div>
<Link to={`/country/${this.state.countryData.countryAndTerriority}/topAirfareCarRentalHotelBookingSite1`} />
</div>
</div>
</div>
)
}
}
export default CountryDetails;
这是我得到的:
现在,我的URL链接显示http://localhost:8080/country/Afghanistan/
,当我单击矩形框时,我希望我的URL链接更新为http://localhost:8080/country/Afghanistan/topAirfareCarRentalHotelBookingSite1
,它将显示一个不同的组件。
由于某些原因,我不能使这个div可单击,并且当我单击它时URL不会改变。
<Link to={`/country/${this.state.countryData.countryAndTerriority}/topAirfareCarRentalHotelBookingSite1`} />
错了还是放错了地方
4条答案
按热度按时间ou6hu8tu1#
你试过把div放在链接里面吗?
o2g1uqev2#
代码语法错误。请用Link标记将div标记括起来
<Link to ='...'><div>....</div></Link>
2wnc66cl3#
作为其他答案的替代方案,您可以使用功能组件并执行以下操作:
我认为这是您的情况下的最佳方法,您实际上不需要为该组件指定状态,因为您已经有了相应的支持。
lf3rwulv4#
我使用了这部分代码:
看起来Link正在禁用div样式。(正如用户Beast在上面的评论中提到的。)在我的例子中,div是空的,只有bg,所以设置div高度:100%解决了问题。