Как сохранить предыдущее состояние?

Есть массив:

const [data, setData] = useState([
    createData('26.01.2021', [
      { type: 'Сканы', name: 'Джиэфси27.12.2020.jpg', id: 0, checked: false },
      { type: 'Накладная', name: 'Джиэфси27.12.2020.jpg', id: 1, checked: false },
      { type: 'Уставные документы', name: 'Джиэфси27.12.2020.jpg', id: 2, checked: false },
      { type: 'Накладная', name: 'Джиэфси27.12.2020.jpg', id: 3, checked: false },
    ]),
    createData('25.01.2021', [
      { type: 'Расходы', name: 'Джиэфси27.12.2020.jpg', id: 0, checked: false },
      { type: 'Накладная', name: 'Джиэфси27.12.2020.jpg', id: 1, checked: false },
      { type: 'Накладная', name: 'Джиэфси27.12.2020.jpg', id: 2, checked: false },
      { type: 'Накладная', name: 'Джиэфси27.12.2020.jpg', id: 3, checked: false },
    ]),
  ]);

createData() возвращает подобный массив: [{date: "date", files: [{type, name ... тд}]}];

По нажатию на одну из кнопок фильтрации вызывается вот эта функция фильтрации:

const filtration = (filterSetting) => {
    setData((prev) => {
      if (prevData.length <= 0) {
        prevData = prev;
      }
      return prev.map(e => {
        return ({
            ...e,
            files:e.files.filter(fl => fl.type === filterSetting)
          });
        });
      });
    };
Она обновляет компонент и возвращает новый массив с измененными данными, но проблема в том что когда пользователь нажимает на другую кнопку нужно вернуть состояние к дефолтному и отфильтровать вновь, но теперь по новой настройке которую дал пользователь. Для этого нужно создать дефолтное состояние и каждый раз когда мне это требуется, обновлять массив к дефолту. Вопрос: Как? Читал документацию про крестики и нолики, это не то что мне поможет к сожалению. У кого то есть решение? :( Очень срочно нужно. if (prevData.length < 0) попытка сделать это сохранение, но она закончилась неудачей.(prevData - массив сохраняющий это состояние, но который ничего не сохраняет)


Ответы (0 шт):