원하는 list를 게시판 형식으로 가져온 후, 모든 컬럼을 sorting 하기 위함. 찾아보니 react-bootstrap-table-next
라는 걸 찾음.
react-create-app
사용(git push 후 babel 설정 modify + 그 외 기능들 추가)yarn add react-bootstrap-table-next
명령어로 react-bootstrap-table 설치public/index.html
파일에 bootstrap CSS 추가해야 함!import 'react-bootstrap-table-next/dist/react-bootstrap-table2.min.css';
결론은 회사에선 쓸 수 없음 ㅠ_ㅠ 기존 css 랑 충돌될 것 같음 ,,
해결 ! index.html에 부트스트랩css 추가 안해도 됨. 테이블 형식으로 나오긴 하는데, 관련 css는 따로 작성해서 import 처리하면 된다 ㅎ
react-bootstrap-table2 doc LIVE DEMO 사이트
import React, {Component} from 'react';
import Table from './components/table1';
class App extends Component {
render() {
return (
<div>
<Table />
</div>
);
}
}
export default App;
import React, { Component } from 'react';
import Table2 from "./table2";
class Table extends Component{
render(){
return(
<div>
<Table2 />
</div>
);
}
}
export default Table;
import React, { Component } from 'react';
import 'react-bootstrap-table-next/dist/react-bootstrap-table2.min.css';
import BootstrapTable from 'react-bootstrap-table-next';
import {inject, observer} from "mobx-react";
class Table2 extends Component{
render(){
const products = [
{ id: 0, name: 'good', price: 1000 },
{ id: 1, name: 'soso', price: 1500 },
{ id: 2, name: 'bad', price: 500 },
{ id: 3, name: 'good3', price: 41000 },
{ id: 4, name: 'soso4', price: 800 }
];
const columns = [
{
dataField: 'id',
text: 'Product ID',
sort: true
},{
dataField: 'name',
text: 'Product Name',
sort: true
},{
dataField: 'price',
text: 'Product Price',
sort: true
}
];
const defaultSorted = [{
dataField: 'name',
order: 'desc'
}];
return(
<div>
<BootstrapTable keyField='id' data={ products } columns={ columns }
defaultSorted={ defaultSorted }
striped
hover
/>
</div>
);
}
}
export default Table2;
기본적으로 가져올 때, name을 기준으로 desc형태로 가져옴. 각 컬럼을 누를 떄마다 desc/asc 형태로 된다.
<BootstrapTable />
의 필수 요소
손쉽게 정렬을 완성할 수 있다!