0

即使在页面重新加载后,我仍然需要保留redux表单字段。 所以我对这种做法是使用initialValues属性将本地存储值保留为redux表单字段

  • 首页刷新所有字段值之前,从我的组件将被保存在componentDidUpdate方法localStorage的 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)

现在我可以在我的GuestEntry反应组件中访问“列表”,“pgu”,“commonFields”值。列表对象包含嵌套的对象级别。虽然迭代和访问它,所有的“值”属性字符串内上市嵌套对象的值对象转换为对象

从这个讨论 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”值回应,否则我只是简单地返回值。