在React

时间:2019-05-09 14:08:54

标签: html reactjs

我在React组件中有<p>标签,我希望根据道具将其居中对齐或左对齐。现在,我正在为每个 <p>标签编写相同的条件,如下所示:

<p align={this.props.someBoolean ? "center" : "left"}>

很显然,我无法将这种情况放入关联的CSS文件中,但我想实现类似的结果-在中央位置对<p>标签设置一次样式。这可能吗?

2 个答案:

答案 0 :(得分:3)

您可以将CSS规则添加到块包装器中:

<div style={{textAlign: this.props.someBoolean ? "center" : "left"}}> 
    <p>...</p>
    <p>...</p>
    ----------
    <p>...</p>
</div>

答案 1 :(得分:0)

先从npm安装style-it,然后在主要组件中安装

  

您应在路由器组件中添加样式标签,否则将仅在同一组件中应用

class Main extends React.Component {
  state = {
    someBoolean: true
  };
  render() {
    return (
      <div>
        <Style>
          {`
      .someClass {
          font-size: small;
          font-family: arial;
          background: #f1f1f1;
        }
      p { // this will apply on all p tag if you added in router component
          font-size: large;
          textAlign: ${this.state.someBoolean ? "center" : "left"}
      }
      input[type=text] {
        width: 50%;
        padding: 12px 20px;
        margin: 8px 0;
        box-sizing: border-box;
      }
         `}
        </Style>
         <Switch>
        <Route exact path="/a" component={A} />
        <Route path="/b" component={B} />
        <Redirect to='/a' />
        </Switch>
      </div>
    );
  }
}
export default Main;

Edit React-router-dom with style-it