때때로로 렌더링해야 할 구성 요소가 <anchor>
있고 다른 시간에는 <div>
. prop
내가 이것을 결정하는 읽기입니다 this.props.url
.
존재하는 경우 <a href={this.props.url}>
. 그렇지 않으면 그냥 <div/>
.
가능한?
이것이 제가 지금하고있는 일이지만 단순화 할 수 있다고 생각합니다.
if (this.props.link) {
return (
<a href={this.props.link}>
<i>
{this.props.count}
</i>
</a>
);
}
return (
<i className={styles.Icon}>
{this.props.count}
</i>
);
최신 정보:
다음은 최종 잠금입니다. 팁 주셔서 감사합니다, @Sulthan !
import React, { Component, PropTypes } from 'react';
import classNames from 'classnames';
export default class CommentCount extends Component {
static propTypes = {
count: PropTypes.number.isRequired,
link: PropTypes.string,
className: PropTypes.string
}
render() {
const styles = require('./CommentCount.css');
const {link, className, count} = this.props;
const iconClasses = classNames({
[styles.Icon]: true,
[className]: !link && className
});
const Icon = (
<i className={iconClasses}>
{count}
</i>
);
if (link) {
const baseClasses = classNames({
[styles.Base]: true,
[className]: className
});
return (
<a href={link} className={baseClasses}>
{Icon}
</a>
);
}
return Icon;
}
}
const baseClasses =
해당if (this.props.link)
지점으로 이동할 수도 있습니다 . ES6const {link, className} = this.props;
를 사용link
하고className
있으므로 및 지역 변수 를 사용하여 약간 단순화 할 수도 있습니다 .