【发布时间】:2020-05-04 13:36:02
【问题描述】:
我正在学习 React JS,为此我正在复制一个我用 PHP 开发的网站。我到了一定程度,出现了一个我在互联网搜索中找不到的问题。我正在使用 Axios 从数据库中获取数据并将其呈现在前端。结果我创建了一个State并使用map()创建了一个循环,到目前为止一切都很好,但是我想通过map()返回的值来排序这个结果。
我返回了一个名为 votes 的字段,它是我想用它来对结果进行排序的数字。
遵循代码
App.js
class App extends Component {
state = {
places: []
};
componentDidMount() {
axios
.get('http://localhost:1337/places/')
.then((res) => this.setState({ places: res.data }));
}
render() {
console.log(this.state.places[0]);
return (
<Fragment>
<Header />
<section id='places'>
<div className='container'>
<Places places={this.state.places} />
</div>
</section>
</Fragment>
);
}
}
Places.js
class Places extends Component {
render() {
return this.props.places
.sort((a, b) => a.votos > b.votos)
.map((place) => (
<div className='row' key={place.id}>
<div className='col-lg-4'>
<Card key={place.id} place={place} />
</div>
</div>
));
}
}
我什至尝试过使用sort(),但我不知道如何选择特定字段作为sort()的参考
谢谢
【问题讨论】:
-
a.votos?那是错字吗?我看到你之前提到过I have the return of a field called votes。 -
Chenxsan 只是把选票翻译成我的语言(葡萄牙语),方便。对此感到抱歉
标签: javascript arrays reactjs loops sorting