随着终极版表格,如何从ReduxFormField onChange事件调度?

问题描述 投票:1回答:1

我收到以下错误:

“调度”没有定义没有民主基金

我正在试图做的是让它所以每当用户选择ReduxFormField一个单选按钮,表格自动的提交。

什么是能够从onReduxFormFieldChange做this..dispatch的正确方法?

...
import {
  Field as ReduxFormField,
  reduxForm,
} from 'redux-form';
import { compose } from 'recompose';
...

class MyFormRadioInputs extends React.Component {
  onReduxFormFieldChange = (e, newValue, previousValue) => {
  if (newValue) {
    dispatch(submit(MYFORM));
  }

  render() {
    const { MyItems } = this.props;
    return MyItems.map((item) => (
        <ReduxFormField
          key={item.id}
          name="MyItemId"
          type="radio"
          value={item.id}
          label={item.title}
          onChange={this.onReduxFormFieldChange}
        />
    ));
  }

}

const withForm = compose(
  reduxForm({
    form: MYFORM,
    ...
  })
);

const MyForm = (props) => (
    <Form>
        <MyFormRadioInputs
          myItems={props.myItems}
        />
    </Form>
);

MyForm.propTypes = {
  myItems: PropTypes.shape....    
};

export default withForm(MyForm);
reactjs redux redux-form recompose
1个回答
1
投票

你是你的组件连接到Redux的形式,但你是不是曾经的部件连接到了Redux商店,这意味着你不必派遣行为(包括终极版形式的行动,例如submit)的能力。

我以前没有使用过recompose,所以我不知道是否/如何熬过来的调度,但与标准的反应,终极版,你将需要添加类似你的文件的底部如下:

const mapDispatchToProps = dispatch => ({ submit: (formName) => dispatch(submit(formName))});

export default connect(null, mapDispatchToProps)(withForm(MyForm));

然后你的组件的onReduxFormFieldChange实现变为:

onReduxFormFieldChange  = (e, newValue, previousValue) => {
    if (newValue) {
        this.props.submit(MYFORM);
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.