我想创建一个更高阶的组件,用于呈现Field
库的redux-form
组件。我的问题是,我想要传递其他用label
装饰组件的道具。我还希望这些输入组件可以在没有 Redux格式的情况下使用。
实现这一目标的一种方法是执行以下操作:
function MyComponent(props) {
return (
<div>
<label>{props.label}</label>
<Field name={props.name} component="input" type="text" />
</div>
)
}
这很好,但如果在redux-form
中没有包装此组件的情况下reduxForm({})
会抛出错误。
另一种方法是执行以下操作:
<Field component={MyComponent} name="my-component" type="text" />
但这不允许我将label
之类的额外道具传递给MyComponent
。
我提出的当前解决方案是将form={false}
道具传递给MyComponent
以呈现<input>
,如果该组件不如果表单中的组件是,则表单和<Field>
。这似乎是一个不优雅的解决方案,因为我宁愿渲染相同的组件而不是通过额外的form
道具。
redux-form
中是否有功能允许将额外的道具传递给<Field>
或允许<Field>
在表单的上下文之外呈现?或者这是redux-form
的限制?