2017-08-03 45 views
0

我已將我的recct-redux應用程序升級到用戶redux-7.x(此時最新版本)。更新後,表單中沒有填充初始值。 (它曾經與redux-forms 2.x一起工作)升級到7.x後,redux-forms初始化工作不起作用

這是一個bug還是我在做一件愚蠢的事情?

下面是我的代碼鏈接 https://github.com/santhoshml/Bookbild-UI/blob/master/src/components/user_profile.js

[更新]:我發現了這個問題(但我仍然沒有答案),

我做了3個電話到後端服務器各一在自己的時間返回,每個人都覆蓋另一個。如果我保持清爽,值繼續做迪斯科:)

現在我已經包裹在所有的Promise.all 3個電話,我可以看到填充所有字段,但是當我編輯和提交,onClickHandler沒有任何更新的值。 爲了調試這個,我在渲染中打印了道具,它沒有從db返回的值。但令人驚訝的是,這些值填充在textfields中。這是令人驚訝的混亂。請幫忙。下面

https://github.com/santhoshml/Bookbild-UI/blob/master/src/components/user_profile.js

鏈接謝謝你在前進, Santhosh毫升

+0

'initialValues'是否會反映到您的商店中,並且只是以'Field'形式呈現'initialValues'的問題? 您可以通過添加一個redux-logger中間件來輕鬆進行驗證。 – sudheeshcm

+0

我發現問題(但我仍然沒有答案),我向後端服務器發出了3個調用,並且每個人都在自己的時間返回,並且每個都覆蓋另一個。如果我不斷刷新,值繼續做迪斯科:)現在我已經將所有3個調用包裝在Promise.all中,我可以看到所有填充的字段,但是當我編輯和提交時,onClickHandler沒有任何更新的值。爲了調試這個,我在渲染中打印了道具,它沒有從db返回的值。但令人驚訝的是,這些值填充在textfields中。這是令人驚訝的混亂。請幫忙。鏈接下面 –

+0

[鏈接](https://github.com/santhoshml/Bookbild-UI/blob/master/src/components/user_profile.js) –

回答

0

你檢查這documentation出來。根據這一點,您需要自己連接()到Redux狀態,並將數據縮減器映射到initialValues支柱。所以它應該是這樣的。

// Decorate with reduxForm(). It will read the initialValues prop provided by connect() 
InitializeFromStateForm = reduxForm({ 
    form: 'initializeFromState' // a unique identifier for this form 
})(InitializeFromStateForm) 

// You have to connect() to any reducers that you wish to connect to yourself 
InitializeFromStateForm = connect(
    state => ({ 
    initialValues: state.account.data // pull initial values from account reducer 
    }), 
    { load: loadAccount }    // bind account loading action creator 
)(InitializeFromStateForm) 

export default InitializeFromStateForm 

您需要做的是提供加載數據的操作。然後映射數據並將其設置爲initialValues屬性。

+0

我有mapDispatchToProps方法,它有一個負載操作方法。我有mapStateToProps方法,其中我把從狀態值到initialValues對象。所有這些都在代碼中。 –