ciao!
sto cercando di ordinare una tabella quando clicco sull'header:
non ricevo errori, ma la tabella non si ordina.codice:import React from 'react'; import { Table, Card, CardHeader, CardBody } from 'reactstrap'; import axios from 'axios'; import {BOOK_ALL} from "../config/config"; export default class Home extends React.Component { constructor(props) { super(props); this.state = { books: [], cntBook: '' }; this.compareBy.bind(this); this.sortBy.bind(this); }; compareBy(key) { console.log(key); return function (a, b) { console.log(a); console.log(b); if (a[key] < b[key]) return -1; if (a[key] > b[key]) return 1; return 0; }; } sortBy(key) { let arrayCopy = [...this.state.books]; arrayCopy.sort(this.compareBy(key)); this.setState({books: arrayCopy}); } componentDidMount() { axios.get(BOOK_ALL) .then(res => { this.setState({ books: res.data.books, cntBook: res.data.books.length }); }); } render() { return ( <main role="main" className="container-fluid"> <Card> <CardHeader>Totale libri: {this.state.cntBook}</CardHeader> <CardBody> <div className="table-responsive"> <Table size="sm" hover bordered> <thead className="thead-dark"> <tr> <th onClick={() => this.sortBy('title')}>Titolo</th> <th>Autore</th> <th>Editore</th> <th>Prezzo</th> <th>ISBN</th> <th>Note</th> </tr> </thead> <tbody> { this.state.books.map(book => <tr key={book.id}> <td scope="row">{book.title}</td> <td>{book.author}</td> <td>{book.editor}</td> <td>{book.price}</td> <td>{book.isbn}</td> <td>{book.note}</td> </tr> ) } </tbody> </Table> </div> </CardBody> </Card> </main> ); } }
non riesco a capire dove sbaglio!
qualche idea??

Rispondi quotando