このコードが列の適切な並べ替えを正しく行えない理由を知る手がかりはありますか?reactjsを使用した複数のソートテーブル
sort(key){
this.setState({
[`toggle-${key}`]: !this.state[`toggle-${key}`],
data: sortBy(this.state.data, [key], this.state[`toggle-${key}`]).map(v => v)
})
}
render() {
return (
<div style={styles}>
<table>
<thead>
{Object.keys(this.state.data[0]).map(v => {
return(
<th onClick={()=>this.sort(v)}>
{v.toUpperCase()}
</th>
)
})}
</thead>
<tbody>
{this.state.data.map(v=>{
return(
<tr>
<td>{v.id}</td>
<td>{v.name}</td>
</tr>
)
})}
</tbody>
</table>
</div>
);
}
状態の切り替えは正しいと思われますが、反射は初めて発生しています。
https://codesandbox.io/s/zqno7m7j4p
は真と偽のではないでしょうか?デモを追加しました、私はトグルできるようにソートする必要があります。 –
3番目の引数は、インデックスに必要な 'this'値を表すものとします。あなたのコードはそうであるように動作しているようです。サンドボックスはうまくいくようです。両方の行の並べ替えが機能しています。 –
@KyleRichardsonは働いていますが、切り替えることはできません。私はそれをトグルすることを期待しています。 sortByではなくorderByを使うべきですか? –