React中的条件格式-添加或附加CSS类

IAs*_*dOS 1 javascript css jsx reactjs

将条件格式应用于此语句的更简洁的方法是什么?

const PaginationStorePageLink = ({ store, pageNum }) => (observer(({ PaginationStore }) => {
  if (this.props.store.currentPage === this.props.pageNum) {
    return (
      <PaginationLink className={styles.bold} onClick={this.props.store.goToPage(this.props.pageNum)} />
    );
  }
  return (
    <PaginationLink className={styles.primary} onClick={this.props.store.goToPage(this.props.pageNum)} />
  );
}));
Run Code Online (Sandbox Code Playgroud)

具体来说,如果当前页码被检测为当前页码,则应应用“ .bold”类。否则,应应用“ .primary”类。

作为一个相关问题,是否可以将类彼此追加?因此,例如,以任何一种方式应用“ .primary”类,但是如果满足条件,则应用“ .bold .primary”?

Jor*_*oru 5

您可以执行以下操作:

const PaginationStorePageLink = ({ store, pageNum }) => (observer(({ PaginationStore }) => {
  const style = store.currentPage === pageNum ? styles.bold : styles.primary;

  return (
    <PaginationLink className={style} onClick={store.goToPage(pageNum)} />
  );
}));
Run Code Online (Sandbox Code Playgroud)

对于第二个问题,".bold .primary"如果要同时应用两个CSS类中的样式,则可以同时应用这两个类()。

  • 也可以使用一个对象将样式映射到条件。如果有必要再使用2-3种样式,则id建议采用这种方法,这样您就不必陷入三元地狱了。:) (2认同)