2017-08-03 29 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对象。所有这些都在代码中。 –