head: {
    className: '',
    columns: ['Name', 'Title', 'Position', 'Company'],
    center: true,
  },

cp-table-head--center {
  text-align: center;
}



上面是我在React中用于表组件的Javascript。
在下面是修饰符的对应CSS


有谁知道如何将修饰符仅应用于数组中的某些头项?谢谢。

最佳答案

我建议使用'classnames'包在React内部应用BEM,因为向组件添加条件类/修饰符要容易得多。但是要回答您的问题,我可能会做这样的事情:

import React from 'react';
import classnames from 'classnames';

const TableHead = ({ title, center = false }) => {
  const styling = classnames({
    'cp-table-head': !center,
    'cp-table-head--center': center,
  });

  return <th className={styling}>{title}</th>
}

const Table = () => {
  const columns = ['Name', 'Title', 'Position', 'Company'];
  const headers = columns.map((title) => (
    <TableHead key={title} title={title} center />
  ));

  return (
    <table>
      <thead>
        <tr>
          {headers}
        </tr>
      </thead>
      <tbody>
        <tr>
          <td>body..</td>
        </tr>
      </tbody>
    </table>
  )
}


此示例相对简单,因此您可以选择仅使用三元运算符:

className={`cp-table-head${center ? '--center' : ''}`}


回答有关居中特定标题项的问题。您可以将上述TableHead组件与..一起使用:

...
const Table = () => {
  const columns = [
    {
      title: 'Name',
      center: true,
    },
    {
      title: 'Title',
      center: false,
    },
    {
      title: 'Position',
      center: true,
    },
    {
      title: 'Company',
      center: false,
    }
  ];

  const headers = columns.map((header, index) => (
    <TableHead key={index} title={header.title} center={header.center} />
  ));
...

关于javascript - 将修饰符类应用于数组中的指定项[ react ],我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49493186/

10-11 12:53