我收到以下错误:
“调度”没有定义没有民主基金
我正在试图做的是让它所以每当用户选择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);
你是你的组件连接到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);
}
}