【发布时间】:2020-06-04 17:40:51
【问题描述】:
我正在使用 React useState 来显示所选文章类型的文章列表。我已经设法使用两个单独的函数使其工作,但我想知道是否有一种方法可以在用户有许多不同选项可供选择的情况下将其放入一个函数中?
function MostReadArticlesList() {
const [list, setList] = useState(mostReadArticles);
const [mostReadStyle, setMostReadStyle] = useState(styles["mostReadArticlesHeaderChosen"])
const [editorsChoiceStyle, setEditorsChoiceStyle] = useState(styles["editorsChoiceHeader"])
const [rankColor, setRankColor] = useState(styles.mostReadArticlesRankRed)
function selectMostRead() {
setList(mostReadArticles);
setMostReadStyle(styles["mostReadArticlesHeaderChosen"]);
setEditorsChoiceStyle(styles["editorsChoiceHeader"]);
setRankColor(styles.mostReadArticlesRankRed);
};
function selectEditorsChoice() {
setList(editorsChoiceArticles);
setMostReadStyle(styles["mostReadArticlesHeader"]);
setEditorsChoiceStyle(styles["editorsChoiceHeaderChosen"]);
setRankColor(styles.mostReadArticlesRankBlue);
};
return (
<div className={styles.mostReadArticlesListContainer}>
<div className={styles.mostReadArticlesHeaderDiv}>
<Button className={mostReadStyle} onClick={selectMostRead}>
<Icon icon="assets/img/circle-growth-icon.png" />
<span>Most Read</span>
</Button>
<Button className={editorsChoiceStyle} onClick={selectEditorsChoice}>
<Icon icon="assets/img/notes-star-icon.png" />
<span>Editors Choice</span>
</Button>
</div>
<div className={styles.mostReadArticlesList}>
{list.map((article) => (
<MostReadArticlesCard
id={article.id}
rank={article.rank}
headline={article.headline}
date={article.date}
rankColor={rankColor}
/>
))}
</div>
</div>
);
}
export default MostReadArticlesList;
【问题讨论】:
标签: javascript reactjs function react-hooks