ReactJS - 是否可以 prevent/exclude 对列进行排序?
ReactJS - Is it possible to prevent/exclude a column from being sorted?
我是 ReactJS 的新手,目前正在创建一个项目,该项目使用我从这里获得的数据 Table 库:
react-data-table-component
我想做的是排除或防止第一列被re-arranged/re-sorted当其他列被点击排序时。
这是我当前的数据 Table:
我正在尝试实现这一点以防止重新排序行号或索引号,因此无论对列进行排序,第一列都将按升序排列(从 1 到 n)。
如果这不可能,那么我可以采取什么其他方法使排名列始终按升序排列,而不管对哪一列(排名列除外)进行排序?
这是我的组件的完整代码:
import React, {useEffect, useState} from 'react';
import 'bootstrap/dist/css/bootstrap.min.css';
import DataTable from 'react-data-table-component';
const CountryTable = ({items}) => {
var x=0;
for(var i=0; i<items.length; i++){
items[i].index = i;
}
console.log(items);
return(
<DataTable
title="Covid-19 Stats"
defaultSortAsc="false"
responsive
defaultSortField="cases"
defaultSortAsc={false}
striped
highlightOnHover
columns={
[
{
name: '#',
selector: 'index',
disableSortBy: true,
},
{
name: 'Country',
selector: 'country',
sortable: true,
},
{
name: 'Total Cases',
selector: 'cases',
sortable: true,
},
{
name: 'Additional New Cases',
selector: 'todayCases',
sortable: true,
},
{
name: 'Current Active Cases',
selector: 'active',
sortable: true,
},
{
name: 'Total Deaths',
selector: 'deaths',
sortable: true,
},
{
name: 'Additional New Deaths',
selector: 'todayDeaths',
sortable: true,
},
{
name: 'Total Recoveries',
selector: 'recovered',
sortable: true,
},
{
name: 'Additional New Recoveries',
selector: 'todayRecovered',
sortable: true,
},
]
}
keyField={items.index}
data={items}
/>
);
}
export default CountryTable;
您可以使用 selector
属性来提供要呈现的自定义值。在这种情况下,可以使用 index
(可能需要 index+1
)。
import React, {useEffect, useState} from 'react';
import 'bootstrap/dist/css/bootstrap.min.css';
import DataTable from 'react-data-table-component';
const CountryTable = ({items}) => {
var x=0;
for(var i=0; i<items.length; i++){
items[i].index = i;
}
console.log(items);
return(
<DataTable
title="Covid-19 Stats"
defaultSortAsc="false"
responsive
defaultSortField="cases"
defaultSortAsc={false}
striped
highlightOnHover
columns={
[
{
name: '#',
selector: (row, index) => index,
sortable: false,
},
{
name: 'Country',
selector: 'country',
sortable: true,
},
{
name: 'Total Cases',
selector: 'cases',
sortable: true,
},
{
name: 'Additional New Cases',
selector: 'todayCases',
sortable: true,
},
{
name: 'Current Active Cases',
selector: 'active',
sortable: true,
},
{
name: 'Total Deaths',
selector: 'deaths',
sortable: true,
},
{
name: 'Additional New Deaths',
selector: 'todayDeaths',
sortable: true,
},
{
name: 'Total Recoveries',
selector: 'recovered',
sortable: true,
},
{
name: 'Additional New Recoveries',
selector: 'todayRecovered',
sortable: true,
},
]
}
keyField={items.index}
data={items}
/>
);
}
export default CountryTable;
我是 ReactJS 的新手,目前正在创建一个项目,该项目使用我从这里获得的数据 Table 库:
react-data-table-component
我想做的是排除或防止第一列被re-arranged/re-sorted当其他列被点击排序时。
这是我当前的数据 Table:
我正在尝试实现这一点以防止重新排序行号或索引号,因此无论对列进行排序,第一列都将按升序排列(从 1 到 n)。
如果这不可能,那么我可以采取什么其他方法使排名列始终按升序排列,而不管对哪一列(排名列除外)进行排序?
这是我的组件的完整代码:
import React, {useEffect, useState} from 'react';
import 'bootstrap/dist/css/bootstrap.min.css';
import DataTable from 'react-data-table-component';
const CountryTable = ({items}) => {
var x=0;
for(var i=0; i<items.length; i++){
items[i].index = i;
}
console.log(items);
return(
<DataTable
title="Covid-19 Stats"
defaultSortAsc="false"
responsive
defaultSortField="cases"
defaultSortAsc={false}
striped
highlightOnHover
columns={
[
{
name: '#',
selector: 'index',
disableSortBy: true,
},
{
name: 'Country',
selector: 'country',
sortable: true,
},
{
name: 'Total Cases',
selector: 'cases',
sortable: true,
},
{
name: 'Additional New Cases',
selector: 'todayCases',
sortable: true,
},
{
name: 'Current Active Cases',
selector: 'active',
sortable: true,
},
{
name: 'Total Deaths',
selector: 'deaths',
sortable: true,
},
{
name: 'Additional New Deaths',
selector: 'todayDeaths',
sortable: true,
},
{
name: 'Total Recoveries',
selector: 'recovered',
sortable: true,
},
{
name: 'Additional New Recoveries',
selector: 'todayRecovered',
sortable: true,
},
]
}
keyField={items.index}
data={items}
/>
);
}
export default CountryTable;
您可以使用 selector
属性来提供要呈现的自定义值。在这种情况下,可以使用 index
(可能需要 index+1
)。
import React, {useEffect, useState} from 'react';
import 'bootstrap/dist/css/bootstrap.min.css';
import DataTable from 'react-data-table-component';
const CountryTable = ({items}) => {
var x=0;
for(var i=0; i<items.length; i++){
items[i].index = i;
}
console.log(items);
return(
<DataTable
title="Covid-19 Stats"
defaultSortAsc="false"
responsive
defaultSortField="cases"
defaultSortAsc={false}
striped
highlightOnHover
columns={
[
{
name: '#',
selector: (row, index) => index,
sortable: false,
},
{
name: 'Country',
selector: 'country',
sortable: true,
},
{
name: 'Total Cases',
selector: 'cases',
sortable: true,
},
{
name: 'Additional New Cases',
selector: 'todayCases',
sortable: true,
},
{
name: 'Current Active Cases',
selector: 'active',
sortable: true,
},
{
name: 'Total Deaths',
selector: 'deaths',
sortable: true,
},
{
name: 'Additional New Deaths',
selector: 'todayDeaths',
sortable: true,
},
{
name: 'Total Recoveries',
selector: 'recovered',
sortable: true,
},
{
name: 'Additional New Recoveries',
selector: 'todayRecovered',
sortable: true,
},
]
}
keyField={items.index}
data={items}
/>
);
}
export default CountryTable;