react-native - 如何根据 react-native 中的数据按价格对平面列表进行排序?
问题描述
我想为价格从高到低、从低到高以及最近添加的排序按钮添加排序按钮。我找不到合适的方法来做到这一点。
我在堆栈屏幕的顶部栏上添加了按钮。我想在主屏幕上对列表进行排序。
以下是来自 api 的数据(您可以使用任何其他虚拟对象):
useEffect(() => {
let tok = authContext.user;
let id = authContext.userid;
axios
.post(
url.productlist,
qs.stringify({
fcm_token: tok,
sort: 1,
user_id: id,
page: 1,
}),
{
headers: {
"Content-Type": "application/x-www-form-urlencoded",
},
}
)
.then((response) => {
console.log(response.data);
setProducts(response.data.products);
})
.catch((err) => {
console.log("Something Went Wrong : " + err);
});
}, []);
下面是平面列表代码(我想按高到低/从低到高/最近添加):
<FlatList
data={products}
keyExtractor={(item) => item.id.toString()}
renderItem={({ item }) => (
<ItemList
title={item.name}
category={item.category}
stock={item.quantity}
price={item.price}
imageUri={item.image}
imageGallery={item.gallery_images}
navigation={navigation}
description={item.description}
yid={item.youtube_video_id}
/>
)}
/>
解决方案
这是对我有用的代码:
const Asc = () => {
fullData.sort(function (obj1, obj2) {
return obj1.price - obj2.price;
});
setFullData([...fullData]);
};
const Desc = () => {
fullData.sort(function (obj1, obj2) {
return obj2.price - obj1.price;
});
setFullData([...fullData]);
};```
推荐阅读
- azure - Azure Service Plan 如何对不同应用的流量进行负载平衡
- typescript - 我如何使用扩展运算符而不是扩展运算符 | 打字稿
- ios - Ipad 崩溃,appAvailability 检查whatsapp
- c# - F# 在管道运算符中使用临时变量,也就是 C# LINQ let
- java - Jenkins Job DSL 问题试图保护凭证
- azure - Powershell 脚本中的 Azure 函数连接
- python - 如何根据两个不同的目录发送命令
- phantomjs - 如何使用 Solana keygen 中的密钥来使用网络钱包?
- typescript - 检查打字稿中也可以为空的值是否大于4
- awk - 断线和空格