如何在reducer中处理redux-form/CHANGE

2024-01-08

推荐的处理方式是什么redux-form/CHANGE动作由 redux-form 调度?我有自己的减速器来管理此表单的状态,但我不确定是否最好执行以下操作:

export default reducer (state = initialState, action) {
  case 'redux-form/CHANGE':
    // return modified state
}

我看到的一个问题是这个减速器会收到every redux-form/CHANGE行动。另外,据我所知,ActionTypes.js 并未以供我导入的方式导出,因此我觉得这可能不是最佳实践。


你绝对可以使用redux-form动作创造者。您只需将其连接到您的组件即可。

所以在你的/components/MyComponent.js

import React from 'react';
import { connect } from 'react-redux';
import { change } from 'redux-form';

class MyComponent extends React.Component {
    ...
    render() {
        return <div>
            <button onClick={this.props.change('formName', 'fieldName', 'value')}>Change</button>
        </div>
    }
}

const mapStateToProps = (state, ownProps) => { ... }
export default connect(mapStateToProps, { change })(MyComponent);

你也可以使用redux-form减速器并将其扩展到您的需求......

In your reducers/index.js]

import { reducer as form } from 'redux-form';

const formPlugin = {
    formName: (state, action) => {
        ...reducer logic
        return newState;
    }
}

const rootReducer = combineReducers({
    ...other reducers,
    form: form.plugin(formPlugin)
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在reducer中处理redux-form/CHANGE 的相关文章

随机推荐