我有一个React Redux应用程序,它使用的是redux-form。表单由事件动态呈现。渲染时,我收到错误Uncaught Error: Could not find "store" in either the context or props of "Connect(Form(FormCreate))"
为了修正错误,我明确地将商店传递给Form组件,如下所示
render(<FormCreate store={store}/>, document.getElementById('form'))
但还可以通过redux-form自定义渲染fiedls存储。例如
<Field store={store} component={renderField} type="text" name="text" label="Text"/>
错误消失了,但在我看来糟糕的方法:)这就是为什么我问为什么我可以更简单地将redux存储转换为渲染的redux-form组件?
PS如果Root元素已经包含在Provider中,我可以将渲染的表单组件包装到Provider中吗?
答案 0 :(得分:0)
您可以为表单使用reduxForm装饰器,它将为您解决此问题。在下面的示例中,SimpleForm是一个由表单组成的React组件。这将使Field组件中的数据显示为Redux状态。然而,装饰器只是es7的一部分,但在Typescript中可用。
export default reduxForm({
form: 'simple' // a unique identifier for this form
})(SimpleForm)
下面的jsfiddle显示了如何使用reduxForm装饰器的完整示例。