我正在使用 redux-form 6.0.0-rc.5 并且我试图显示用户输入的表单值。
但是,我希望从另一个组件而不是 redux 表单本身显示这些值。
所以,我简化的应用程序架构将是这样的:
<App /> -> (main component -container ?-)
<List /> -> (connect to form values and pass them down)
<Elem /> -> (display form value)
<Form /> -> (enter form values)
该组件是一个安装到“表单”的 redux 表单并且正在工作。
Form = reduxForm({
form: 'formName'
})(Form)
获取表单值(来自 state form.formName.values)并将它们发送到我的 Display 组件的好方法是什么?
我尝试过的事情:
将App连接到商店和mapStateToProps (form.formName.values),然后将其作为props传递给 Display。但它会引发错误,因为在用户输入任何内容之前,表单状态中不存在值。
在 List 组件中使用 redux-form 提供的函数getFormValues ('formName') 但它返回一个函数或 undefined :
元素
const Elem = ({ name }) => (
<li>{name}</li>
)
列表
const List = ({ values }) => (
{values.map(value => <Elem name={value.name} />)}
)
List = connect(
state => ({
values: getFormValues('formName')
})
)(List)
一定是我遗漏了一些东西,或者我仍然没有正确理解它是使用redux-form还是redux本身......我希望有人能够启发我!
谢谢你,祝你有美好的一天。