Я следую учебному пособию в React Redux. Я создал переменную store с хранилищем Redux, в которой есть две вложенные переменные. Одним из них является expenses
, который является массивом объектов, а другим является filters
, который является самим объектом.
const store = createStore(
combineReducers({
expenses: expensesReducer,
filters: filtersReducer
})
);
При заполнении фиктивных значений хранилище будет выглядеть так:
const dummyState = {
expenses: [{
id: '10-AC-191',
title: 'January Rent',
note: 'This was the final payment for that address',
amount: 545.00,
createdAt: 0
}, {
id: '10-AK-155',
title: 'Breakfast',
amount: 545.00,
createdAt: 2000
}],
filters: {
text: 'rent',
sortBy: 'amount',
startDate: 700,
endDate: 360,
}
};
В настоящее время я пишу функцию для отображения массива результирующих расходов, который выглядит следующим образом.
const getVisibleExpenses = (expenses, {text, sortBy, startDate, endDate}) => {
return expenses.filter(({title, note, createdAt}) => {
const startDateMatch = typeof startDate !== 'number' || createdAt >= startDate;
const endDateMatch = typeof endDate !== 'number' || createdAt <= endDate;
const searchText = text.trim().toLowerCase();
const textMatch = typeof text !== 'string' || title.toLowerCase().includes(searchText)
|| note.toLowerCase().includes(searchText);
return startDateMatch && endDateMatch && textMatch;
}).sort((expense_a, expense_b) => {
if (sortBy === 'amount') return expense_a.amount - expense_b.amount;
else if (sortBy === 'date') return expense_a.createdAt - expense_b.createdAt;
});
};
Эта функция принимает store.expenses
, store.filters
в качестве двух входов. Поэтому я хотел передать только объект store
и получить вывод.
Поэтому я попытался деструктурировать саму структуру хранилища ввода вместо вызова хранилища ниже. Но это возвращает ошибку.
const getVisibleExpenses = ({expenses, {text, sortBy, startDate, endDate}})
Есть ли какие-нибудь возможные решения?