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」值迴應,否則我只是簡單地返回值。