在React项目中,我有Itinerary.tsx
、ItineraryDetails.tsx
、Description.tsx
、Weather.tsx
和WeatherDetails.tsx
组件。
在Itinerary.tsx
内部,我有这样的东西:
<ItineraryDetails>
<Description/>
</ItineraryDetails>
在Weather.tsx
内部,我有这样的东西:
<WeatherDetails>
<Description/>
</WeatherDetails>
在Description.tsx
内部,我有几个其他元素和徽章前的链接:
<Link>
</Link>
<Badge>
</Badge>
由于除了链接之外的所有内容对于Itinerary.tsx
和Weather.tsx
都是相同的,我是否可以将Description.tsx
用于两者,并以某种方式有条件地仅在Itinerary.tsx
内部渲染链接?还是最好创建2";描述"?我认为拥有两个如此相似的组件是一种浪费,一旦你需要进行更改,它就不实用了。
由于html元素的顺序,我不能只在ItineraryDetails
之后或Description
之前添加链接(链接应该出现在徽章之前(。
您可以将属性传递给Description
组件:
{this.props.showLink && <Link></Link>}
<Badge></Badge>
然后像这样使用:
<ItineraryDetails>
<Description showLink />
</ItineraryDetails>
<WeatherDetails>
<Description/>
</WeatherDetails>