আমার একটি উপাদান রয়েছে যা কখনও কখনও একটি হিসাবে <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>
);
হালনাগাদ:
এখানে চূড়ান্ত লকআপ রয়েছে। টিপটির জন্য ধন্যবাদ, @ সুলতান !
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)শাখায়ও যেতে পারেন । আপনি ES6 ব্যবহার করছেন, তোমরাও তেমনি দ্বারা একটি বিট প্রক্রিয়া সহজ পারেনconst {link, className} = this.props;এবং তারপর ব্যবহারlinkএবংclassNameস্থানীয় ভেরিয়েবল হিসেবে।