2016-10-05 61 views
1

我試圖將表單值添加到在我的容器中使用getFormValues的道具。但是,當我在派生組件中查找values屬性時,我得到一個未定義的值。我錯過了什麼?使用redux-form [v 6.0.5] getFormValues不會將值添加到道具

容器代碼:

import {reduxForm, getFormValues} from 'redux-form'; 
import {connect} from 'react-redux'; 
import {bindActionCreators} from 'redux'; 
import * as actions from '../actions/propertiesActions'; 
import Properties from '../components/common/Properties'; 

const mapStateToProps = (state, ownProps) => { 
    return { 
     form: ownProps.id, 
     values: getFormValues(ownProps.id)(state) 
    }; 
}; 

const mapDispatchToProps = (dispatch) => { 
    return { 
    actions: bindActionCreators(actions, dispatch) 
    }; 
} 

export default connect(mapStateToProps, mapDispatchToProps)(reduxForm()(Properties)); 

在屬性成分,呼籲this.props.values將返回undefined。

可能是什麼問題? 謝謝,

回答

4

道具«價值»是保留關鍵在redux形式。你需要嘗試使用另一個鍵,比如«formValues»。

@connect(
    (state) => ({ 
    formValues: getFormValues('form-name')(state) || {}, 
    }), 
    {} 
) 
@reduxForm({ 
    form: 'form-name' 
}) 

export default class Form extends Component { 
    static propTypes = { 
    ... 
    formValues: PropTypes.object.isRequired, 
    ... 
    } 

    render() { 
    return (
    ); 
    } 
} 
+0

事實上,您的解決方案工作。非常感謝你。 – Ido

+0

這幫了我很多。我花了很多時間調試它。謝謝! – inostia

+0

這是我見過的第一個使用getFormValues的有用示例。謝謝! – softweave