정렬 가능한 열이있는 반응 테이블을 만들고 있습니다. 연령 행을 정렬하면 결과가 제대로 정렬되지 않습니다. 나는 내가 제대로 정렬하고 있는지 다시 확인하고 데이터에 반복 번호를 추가했습니다. 또한 데이터의 공백이나 오류를 확인했습니다. 나는 또한 그들이 문자열이 아닌 숫자인지 확인하려고 노력했습니다. "연령"속성에 문제가없는 것 같습니다. 그렇다면 25가 32보다 높은 이유는 무엇입니까?
다음은 코드입니다 (확산 연산자를 제외하고 ...로 주석이 달린 반복적 인 다른 속성을 잘라 냈습니다. 물론 스프레드 연산자입니다).
function PeopleList({participants}){
const [reverse, setReverse] = useToggle(true);
let [sortType, setSort] = useState('default')
let reverseFunction = (arr) => {
if(reverse){
return arr.reverse()
} else {
return arr
}
}
let sortRows = {
...
age: {
class: 'age',
fn: (a, b) => a-b
},
default: {
class: 'default',
fn: (a, b)=>a
}
}
return (
<table>
<thead>
<tr>
...
<td><Button onClick={()=>{setSort('age'); setReverse()}}>
...
</tr>
</thead>
<tbody>
{reverseFunction([...list].sort(sortRows[sortType].fn)).map(person=>{
return <tr>
...
<td>{person.age}</td>
...
</tr>
)}
)}
질문을 제출하려고 할 때 오류를 발견했습니다. 질문을 신중하게 편집했기 때문에 같은 오류를 간과하는 사람에게도 유용 할 경우 제출할 것이라고 생각했습니다.
개체 속성 대신 개체를 정렬했습니다. 연령별로 정렬하려면 매개 변수의 연령 속성을 비교해야합니다.
age: {
class: 'age',
fn: (a, b) => a.age-b.age //Remember the property
},
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다