Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将redux存储传递到动态呈现的redux表单组件中?_Javascript_Reactjs_Redux_React Redux_Redux Form - Fatal编程技术网

Javascript 如何将redux存储传递到动态呈现的redux表单组件中?

Javascript 如何将redux存储传递到动态呈现的redux表单组件中?,javascript,reactjs,redux,react-redux,redux-form,Javascript,Reactjs,Redux,React Redux,Redux Form,我有一个React Redux应用程序,它使用Redux表单。表单是通过事件动态呈现的。当它呈现时,我得到一个错误Uncaught错误:在“Connect(Form(FormCreate))”的上下文或道具中找不到“store” 为了修复这个错误,我显式地将一个存储传递到表单组件中,如下所示 render(<FormCreate store={store}/>, document.getElementById('form')) render(,document.getElement

我有一个React Redux应用程序,它使用Redux表单。表单是通过事件动态呈现的。当它呈现时,我得到一个错误
Uncaught错误:在“Connect(Form(FormCreate))”的上下文或道具中找不到“store”

为了修复这个错误,我显式地将一个存储传递到表单组件中,如下所示

render(<FormCreate store={store}/>, document.getElementById('form'))
render(,document.getElementById('form'))
但redux表单自定义渲染场也需要存储。比如说

<Field store={store} component={renderField} type="text" name="text" label="Text"/> 

错误消失了,但在我看来这是一种糟糕的方法:)这就是为什么我要问如何更简单地将redux存储传递到呈现的redux表单组件中


PS:如果根元素已经包装在提供者中,我可以将呈现的表单组件包装到提供者中吗

您可以对表单使用reduxForm装饰器,它将为您解决此问题。在下面的示例中,SimpleForm是一个由表单组成的React组件。这将使字段组件中的数据显示为Redux状态。不过,装饰器只是es7的一部分,但在Typescript中可用

导出默认reduxForm({
表单:“simple”//此表单的唯一标识符

})(SimpleForm)
Ok,正如redux表单文档所说,我使用了decorator,但存储并没有传递到新的呈现表单中。我通过使用第二个
来解决问题。reduxForm装饰器不会将存储作为组件的道具提供给您,但它会确保您不需要向组件提供存储。它将确保字段中的数据最终处于redux状态。