如何解决如何从react-native中的两个不同数组中过滤?
我需要显示按月分组的费用历史记录,每个月标题都应显示该月的总费用。我想让SectionList显示每个月的支出,并且我正在使用react-native firebase来存储数据。但是,如何根据月份过滤交易并在相应的月份标题下显示呢?
componentDidMount() {
//Querying
firestore()
.collection('expenses')
.orderBy('dateTime','desc')
.get()
.then((querySnapshot) => {
const expenses = [];
querySnapshot.forEach((documentSnapshot) => {
console.log('documentordered',documentSnapshot.data());
expenses.push({...documentSnapshot.data(),key: documentSnapshot.id});
});
const expenseData = expenses.map((item) => ({
title: moment(item.dateTime).format('MMMM'),data: this.filterExpenses(expenses),}));
// this.setState({expenseHistory: expenses},() => {
// });
});
}
filterExpenses(expenses) {
var filtered = expenses.filter((item) =>
monthNames.forEach((element) => {
element == moment(item.dateTime).format('MMMM');
}),);
console.log('keys',filtered); //Getting output as "keys",[]
}
createCollection = () => {
Keyboard.dismiss();
firestore()
.collection('expenses')
.add({
expenseNote: this.state.expenseNote,expenseValue: this.state.expenseValue,category: this.state.category,dateTime: moment().format(),})
.then(() => {
this.setState({
expenseNote: '',expenseValue: '',category: '',dateTime: '',});
});
};
这是我的费用数据和月份详细信息。
const monthNames = [
'January','February','March','April','May','June','July','August','September','October','November','December',];
const expenses = [
{
category: 'Home',dateTime: '2020-11-25T12:08:08+05:30',expenseNote: 'abc',expenseValue: 200,key: 'm0NSjh78vl3lLdXz7tlE',},{
category: 'Shopping',dateTime: '2020-10-25T18:47:08+05:30',expenseNote: 'Shop',expenseValue: 123,key: 'K3xcuRAD83B15I4mBYnK',{
category: 'Travel',dateTime: '2020-10-25T12:47:08+05:30',expenseNote: 'Uber',expenseValue: 100,key: 'M0Qbwtzz5mzQzo3N4b9e',{
category: 'Home',dateTime: '2020-10-25T12:08:08+05:30',expenseNote: 'Hotel',expenseValue: 300,key: 'aXocTlJlCvJTl5w5MREr',];
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。