当前位置: 首页 > 知识库问答 >
问题:

反应,从道具中添加css类[duplicate]

师建德
2023-03-14

我正在尝试向我的卡组件添加一个类,以便在插入时可以选择布局。但是这些道具不是在类名中解释的,我如何才能以这种方式添加css类?

组成部分

 function Card(props) {
        return (
          <div className="d-flex mx-auto {props.layout}" >
            <div className="background my-auto">
              <div className="d-flex justify-content-center">
                <h3>{props.title}</span></h3>
              </div>
              <div className="d-flex h-100">
                <div className="w-100 my-auto">
                  <p>{props.text}</p>
                </div>
              </div>
            </div>
          </div>
        );
      }

在布局

<Card
 layout="my-green-bg"
 title="my title"
 text="my text"
/>

共有2个答案

皮安顺
2023-03-14

您可以尝试下面的代码。

function Card(props) {
    const classes = [ 'd-flex', 'mx-auto' ];
    if (props.layout) classes.push(props.layout);
        return (
          <div className={ classes.join(' ') } >
            <div className="background my-auto">
              <div className="d-flex justify-content-center">
                <h3>{props.title}</span></h3>
              </div>
              <div className="d-flex h-100">
                <div className="w-100 my-auto">
                  <p>{props.text}</p>
                </div>
              </div>
            </div>
          </div>
        );
      }

另一种方式可以是

function Card(props) {
        return (
          <div className={ 'd-flex mx-auto ' + props.layout } >
            <div className="background my-auto">
              <div className="d-flex justify-content-center">
                <h3>{props.title}</span></h3>
              </div>
              <div className="d-flex h-100">
                <div className="w-100 my-auto">
                  <p>{props.text}</p>
                </div>
              </div>
            </div>
          </div>
        );
      }
何华灿
2023-03-14

请尝试以下操作:

<div className={`d-flex mx-auto ${props.layout}`}>

或不带模板文本:

<div className={'d-flex mx-auto ' + props.layout}>

我希望这有帮助!

 类似资料:
  • 我有一个组件,根据其大小接收道具。道具可以是字符串或数字,例如:或。 我能让知道这可以是PropTypes验证中的一个或另一个吗? 如果未指定类型,则会收到警告: prop type无效;它必须是一个函数,通常来自React。道具类型。

  • 在本页React Native State on React Native docs中,我们有以下语句: 道具由父级设置,并且在组件的整个生存期内都是固定的。 但是,在本页React文档上的React State and Lifecycle中,我们有以下声明: 因为this.props和this.state可能是异步更新的,所以不应该依赖它们的值来计算下一个状态。 我的误解在哪里?对我来说,当组件

  • 悬而未决...

  • 我试图通过反应路由器将道具从一个组件传递到另一个组件。当我试图从子组件获取道具时,我得到了这样一条消息。这是我的代码: Tracks.jsx: app.jsx: Album.jsx:

  • 当设置组件的初始状态时,使用通过道具传入的数据,我是否应该创建一个新的对象,执行类似于... 或者这样做是安全的...

  • 我有一个React组件,它获取一个配置对象作为道具,它看起来像这样: 在某些情况下,我希望通过使用传入另一个对象来禁用组件显示的功能,如下所示: 这工作正常,不是问题。 但是,我还希望确保使用我的组件的客户端代码提供正确的配置对象: 如果active为true,则需要foo 如果active为false,则foo是可选的,不需要提供 我如何为这样的情况定义道具类型? 我试过: 但这给了我以下警告:

  • 我见过多个使用Typescript的React组件示例: +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++组件 当我们不使用道具或国家时,似乎没有一个明确的惯例。 人们将这些类型设置为,,,, ,等等。这是我到目前为止看到的:

  • 我不明白为什么我们要用{…道具} 例如在我的代码中(当我学习路由器时)我做了这样的事情 这里,这个传递函数/可能称之为给他道具 从React导入; 这将记录类似这样的内容 但是如果我把{…道具}从家里移除,它就不会记录这个 任何人都可以分步/或详细地解释发生了什么,我们为什么需要它?