【发布时间】:2017-12-10 23:26:23
【问题描述】:
我正在使用 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);
我可以从控制台日志中看到此 HelpForm 组件仅呈现一次,即使在我为 category 或 subcategory 字段(这些字段在 CategorySelectBlock 组件中定义)选择了新值之后也是如此。
我是做错了什么,还是误解了formValueSelector 的工作原理?任何指导将不胜感激。谢谢!
【问题讨论】:
标签: reactjs redux react-redux redux-form