Hello Stackオーバーフローメンバー
これは、列ヘッダーの配列です。列1から列5を左揃え(列1から列5のすべてのヘッダー、サブヘッダー、およびテーブルデータセルを左揃え)、列6から列8を中央揃え(すべてのヘッダー、サブヘッダー列1から列5の表データセルを中央に揃える)。すべての列を中央に配置するか、すべての列を左揃えにすることしかできないため、これを解決するのを手伝ってください。
この画像に示すように、この特定のスタイルを列6から8のヘッダーに実装したいです。 。
私を助けることができるなら、CodeSandboxでデモを提供してください
これは私のヘッダーデータです
const columns = [
{
Header: 'Column 1',
columns: [
{
Header: 'S Column 1',
accessor: 'firstName'
}
]
},
{
Header: 'Column 2',
columns: [
{
Header: 'S Column 2',
accessor: 'firstName'
}
]
},
{
Header: 'Column 3',
columns: [
{
Header: 'S Column 3',
accessor: 'firstName'
}
]
},
{
Header: 'Column 4',
columns: [
{
Header: 'S column 4',
accessor: 'firstName'
}
]
},
{
Header: 'Column 5',
columns: [
{
Header: 'S column 5',
accessor: 'firstName'
}
]
},
{
Header: 'Column 6',
columns: [
{
Header: 'S column 6a',
accessor: 'firstName'
},
{
Header: 'S column 6b',
accessor: 'firstName'
},
{
Header: 'S column 6c',
accessor: 'firstName'
},
{
Header: 'S column 6d',
accessor: 'firstName'
}
]
},
{
Header: 'Column 7',
columns: [
{
Header: 'S column 7',
accessor: 'firstName'
}
]
},
{
Header: 'Column 8',
columns: [
{
Header: 'S Column 8a',
accessor: 'firstName'
},
{
Header: 'S Column 8b',
accessor: 'firstName'
},
{
Header: 'S Column 8c',
accessor: 'firstName'
},
{
Header: 'S Column 8d',
accessor: 'firstName'
}
]
},
];
方法1:
このような何かが仕事をするはずです
columns: [
{
accessor: "firstName",
Header: () => (
<div
style={{
textAlign:"right"
}}
>S Column 1</div>)
},
あなたが私を助けることができるなら、CodeSandboxでデモを提供してください
再生 ここ
OPコメントの後に更新
ただし、中央揃えになる列の場合、サブセルデータも中央揃えになります
このようなセルスタイルを操作する
Cell: row => <div style={{ textAlign: "center" }}>{row.value}</div>
それを再生 ここ
方法2:
使用すると、headerClassName
を使用してクラス名を指定できます。そのクラスでは、ルールtext-align:center
したがって、コードは次のようになります
const columns = [{
Header: 'Column 5',
accessor: 'name',
headerClassName: 'your-class-name'
},
{
......
}
]
方法3:
ヘッダーがたくさんある場合、すべてのヘッダーにheaderClassNameを追加するのは大変です。その場合、ReactTableDefaults
でクラス名を設定できます
import ReactTable, {ReactTableDefaults} from 'react-table';
const columnDefaults = {...ReactTableDefaults.column, headerClassName: 'text-left-classname'}
そしてReactTableでは、このように使用します
<ReactTable
...
...
columns = { columnDefaults }
/>
注:bootstrapを使用している場合、組み込みクラス
text-center
からheaderClassName
headerStyle: {textAlign: 'right'}
を列に追加すると、ヘッダーセルのカスタムレンダラーを必要とせずにトリックを実行できます。少しきれいな私見
{
Header: "Name",
accessor: "name",
headerStyle: {textAlign: 'right'}
},
いくつかのオプションがあります。 1つは、列構成がstyle
プロパティを使用することです。このプロパティを使用して、textAlign
を含むカスタムCSSを渡すことができます(列プロパティのドキュメントについては here を参照)。各列に、目的のtextAlign
スタイル値を渡します。
別のオプションは、カスタムCell
プロパティを列に渡し、テキスト配置スタイルを割り当てた要素でコンテンツをラップすることです。何かのようなもの:
{
Header: "Name",
accessor: "name",
Cell: cellContent => <RightAlign>{cellContent}</RightAlign>
},
(Googleでドキュメントと使用例を見る)