如何使用this.props.change以redux形式更改深字段

时间:2018-09-03 07:32:47

标签: reactjs redux

我想用redux-form中的this.props.change来更改redux-form V6中的深字段。

这是我的mapStateToProps

function mapStateToProps(state) {
    const {recipient_type, filters} = 
    formValueSelector('form_wizard')(
    state, 'filters.recipient_type' ,'filters');

    return {
        recipient_type,
        filters
    }
}

这是我的componentDidMount(我想在其中以编程方式更改深场)

componentDidMount() {
    if (!this.props.recipient_type) {
        this.props.change("filters.recipient_type}", 
                           someThing);}
}

this.props.recipient_type的结果是不确定的。

如何在this.props.change()中用redux-form改变深场?

谢谢

1 个答案:

答案 0 :(得分:1)

最后,我找到了答案

如果要以redux形式访问深字段,则必须使用 formValueSelector 中的父键来获取它:

function mapStateToProps(state) {
    const {filters} = 
    formValueSelector('form_wizard')(
    state, 'filters.recipient_type' );
    return {
        recipient_type : filters,
    }
} 

,以及是否需要获取父字段:

function mapStateToProps(state) {
    const {filters} = 
    formValueSelector('form_wizard')(
    state, 'filters' );
    return {
        recipient_type : filters.recipient_type,
    }
}