我正在使用React和Redux Form构建表单。我使用formValueSelector
连接到几个输入字段。但是,当我在UI中更新这些输入字段时,不会重新呈现表单。我的代码如下所示:
// HelpForm.jsx
import React from 'react';
import { connect } from 'react-redux';
import { reduxForm, formValueSelector } from 'redux-form';
import CategorySelectBlock from 'apps/help_form/components/CategorySelectBlock';
const selector = formValueSelector('help_form');
const mapStateToProps = state => ({
category: selector(state, 'category'),
subcategory: selector(state, 'subcategory')
});
class HelpForm extends React.Component {
render() {
const {
category,
subcategory
} = this.props;
console.log('Rendering HelpForm');
console.log('category:', category);
console.log('subcategory:', subcategory);
return (
<form id="helpform">
<CategorySelectBlock
category={category}
subcategory={subcategory}
/>
</form>
);
}
}
const ReduxHelpForm = reduxForm({
form: 'help_form'
})(HelpForm);
export default connect(
mapStateToProps
)(ReduxHelpForm);
我可以从我的控制台日志中看到,即使在为category
或subcategory
字段选择新值后,此HelpForm组件也只渲染一次(这些字段在{{1}中定义} component)。
我做错了什么,或误解了CategorySelectBlock
的工作原理?任何指导都将非常感谢。谢谢!
答案 0 :(得分:1)
我明白了。我没有通过我的自定义输入类型传递onChange
属性。