0

У меня есть требование сохранить поля формы редукта даже после перезагрузки страницы. Так что мой подход этоСохранение значений localstorage в полях формы редукции с использованием атрибута initialValues ​​

  • сперва перед страница обновляется все значения полей из моего компонента будет сохранен LocalStorage в методе componentDidUpdate componentDidUpdate(prevProps, prevState) { prevProps.fields ? localStorage.setItem('fields', JSON.stringify(prevProps.fields)):null prevProps.fields ? localStorage.setItem('fields', JSON.stringify(prevProps.fields)):null }

  • Затем после обновления страницы, я проверяю, если какие поля доступны в LocalStorage тогда я задаю эти поля объекта непосредственно к моему reduxform начальные значения

let reduxFormFunc = reduxForm( { form: 'rentSelection', destroyOnUnmount: false, fields: guestEntryFields, validate, initialValues: getInitFields() }, selectProps ) function getInitFields() { let initValues = {pgu: defaultpgu} if(localStorage.getItem('fields') && JSON.parse(localStorage.getItem('fields')).listings.length>0){ console.log('selecting and assigning fields from localstorage') let fields = JSON.parse(localStorage.getItem('fields')) console.log(fields) initValues['commonFields'] = fields.commonFields initValues['listings'] = fields.listings initValues['pgu'] = fields.pgu } console.log(initValues) return initValues } export default reduxFormFunc(GuestEntry)

Теперь я могу получить доступ к значениям «списки», «pgu», «commonFields» в моем компоненте реакции GuestEntry. и объект списка содержит вложенный уровень объектов. В то время как итерация и доступ к ним, все его «значение» значение атрибутов строк вложенных объектов внутри списков объекта преобразуется в объект

Из этого обсуждения https://github.com/erikras/redux-form/issues/576 я узнал, что мы должны вызвать свойство значения на значение атрибута, что-то вроде этого

listings[0].entry.value.value 

здесь значение представляет собой строку, но в качестве ее преобразования в объект мне нужно вызвать value.value.

Итак, можно ли быстро решить проблему? Или это исправлено в последней версии redux-form? Я в настоящее время использую «redux-form»: «^ 4.2.0»,

+0

Я использую 'redux-persist', и все в моих магазинах регидратируется (если только я не занесен в черный список конкретным ключом), когда страница перезагружается. – sean

ответ

0

В этой версии я не нашел альтернативного способа, поэтому я просто обновил код таким образом, что если я получу значение как экземпляр объекта, то я возвращаю значение с использованием «object.value», иначе я просто просто возвращаю значение.

Смежные вопросы