Semantic UI React не включает встроенную сортировку.В заголовке отсутствуют значки сортировки, если вы их не добавите.Он будет отображать именно то, что вы говорите, реагировать на визуализацию в указанном порядке.Таким образом, чтобы выполнить сортировку, вам нужно отделить данные от презентации, а затем отсортировать данные, как вы хотите:
const TableExamplePadded = ({tableData}) => ( // extract the prop `tableData` from props
<Table celled padded>
<Table.Header>
<Table.Row>
<Table.HeaderCell singleLine>Evidence Rating</Table.HeaderCell>
<Table.HeaderCell>Effect</Table.HeaderCell>
<Table.HeaderCell>Efficacy</Table.HeaderCell>
<Table.HeaderCell>Consensus</Table.HeaderCell>
</Table.Row>
</Table.Header>
<Table.Body>
{tableData.map((rowData) => ( // render one row per item in tableData
<Table.Row key={rowData.key}> // let react know which data item a row corresponds to using `key`
<Table.Cell>
<Header as='h2' textAlign='center'>
{rowData.evidenceRating}
</Header>
</Table.Cell>
<Table.Cell singleLine>{rowData.evidenceRating}</Table.Cell>
<Table.Cell>
<Rating icon='star' defaultRating={rowData.efficacy} maxRating={3} />
</Table.Cell>
<Table.Cell textAlign='right'>
{tableData.concensusPercentage}% <br />
<a href='#'>{tableData.consensusStudyCount} studies</a>
</Table.Cell>
</Table.Row>
))}
</Table.Body>
</Table>
)
, и вы должны отобразить это в другом компоненте, например: <TableExamplePadded tableData:{sortedData} />
Что здесь происходит, так это то, что данные (массив объектов) теперь передаются как tableData
опора (это может быть любое имя, которое вы хотите, но tableData
имеет смысл для меня)структура таблицы, а .map
используется для создания строки для каждого элемента в массиве данных.Здесь вы можете передать все, что угодно, в том числе и другие визуализированные элементы реагирования, но для вашего варианта использования массив объектов данных выглядит так, как вам нужно.
Что касается порядка сортировки, то он будет в любом порядке в вашем массиве данных.Вы можете сортировать этот массив по своему усмотрению.Для получения дополнительной информации о том, как это сделать, посмотрите эту библиотеку , этот вопрос (для сортировки числовых значений) или этот аналогичный вопрос (для строковых значений)