Как сохранить состояние перед переключением на другой компонент в React JS

Для компонента реакции, который отображает таблицу с некоторыми данными, я установил некоторые фильтры в состоянии

this.state = {
            filters: {
                id: '',
                status: '',
                language: '',
                project: ''
            }
        };

Если я добавлю фильтр, состояние будет установлено соответствующим образом

   filters: {
                id: '1',
                status: '2',
                language: 'EN',
                project: '101'
            }

В этом компоненте вы можете щелкнуть ссылку «страница подробностей» (это просто <a href>), чтобы приложение переключилось на другой компонент, чтобы показать проект в деталях. На этой странице сведений есть обратная ссылка для возврата к таблице данных. Моя проблема в том, что фильтры исчезают, как только я переключаюсь обратно. Как можно сохранить состояние, чтобы, как только я переключился обратно, я мог показать ранее выбранные данные фильтра? Какие есть варианты?

Эта проблема кажется такой же, поэтому проверьте это решение: stackoverflow.com/questions/53699298/…

Martin Z 21.12.2020 10:31

1. использовать localStorage или 2. поднять состояние до компонента, который не размонтируется при смене страницы

user5734311 21.12.2020 10:32
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
Раскрытие чувствительных данных
Раскрытие чувствительных данных
Все внешние компоненты, рассмотренные здесь до сих пор, взаимодействуют с клиентской стороной. Однако, если они подвергаются атаке, они не...
Зод: сила проверки и преобразования данных
Зод: сила проверки и преобразования данных
Сегодня я хочу познакомить вас с библиотекой Zod и раскрыть некоторые ее особенности, например, возможности валидации и трансформации данных, а также...
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Мы провели Twitter Space, обсудив несколько проблем, связанных с последними дополнениями в Angular. Также прошла Angular Tiny Conf с 25 докладами.
Руководство ChatGPT по продаже мини JS-файлов
Руководство ChatGPT по продаже мини JS-файлов
JS-файл - это файл, содержащий код JavaScript. JavaScript - это язык программирования, который в основном используется для добавления интерактивности...
0
2
1 093
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

В reactJS, если вы будете использовать <a href = "linkOfTheTarget">, оно будет повторно отображать все приложение, несмотря на то, что отрисовывается компонент, на который вы нацелены. Вы можете использовать https://reactrouter.com/web/api/Link, чтобы сделать ваше приложение надежным. Вы можете использовать управление состоянием, например react-redux, для сохранения состояния независимо от повторного рендеринга приложения. Но проблема с react-redux заключается в том, что если пользователь обновит страницу, данные будут потеряны. Так что вы можете

onChange = {(e) => { 
             this.setState({filters: {...this.state.filters, language: e.target.value} });
             localStorage.setItem("filteredLang", e.target.value);
}

Другие вопросы по теме