Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/25.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
Reactjs React Redux中实体列表的CRUD操作_Reactjs_Redux_Redux Form - Fatal编程技术网

Reactjs React Redux中实体列表的CRUD操作

Reactjs React Redux中实体列表的CRUD操作,reactjs,redux,redux-form,Reactjs,Redux,Redux Form,我想知道在出现实体列表的情况下,在React-Redux中实现CRUD操作的最佳方法是什么 要求: 1.每行包含一个实体 2.更改文本输入中的值将触发PUT调用 3.每行都有Delete操作,触发一个Delete调用 4.表单有一个ADD操作触发一个POST调用 注: 1.没有单一的提交按钮 我考虑过这个问题,但由于我没有一个提交操作,我觉得它不太合适(请随意更正) 您可以使用Redux表单进行此操作。如果为表单设置验证程序,则可以定义字段是否依赖于其他字段。Redux表单将为任何字段中的每个更

我想知道在出现实体列表的情况下,在React-Redux中实现CRUD操作的最佳方法是什么

要求:
1.每行包含一个实体
2.更改文本输入中的值将触发PUT调用
3.每行都有Delete操作,触发一个Delete调用
4.表单有一个ADD操作触发一个POST调用

注:
1.没有单一的提交按钮

我考虑过这个问题,但由于我没有一个提交操作,我觉得它不太合适(请随意更正)


您可以使用Redux表单进行此操作。如果为表单设置验证程序,则可以定义字段是否依赖于其他字段。Redux表单将为任何字段中的每个更改运行此验证程序

当表单中没有验证错误时,您可以设置Redux Observable或Redux Thunk之类的内容,在Redux表单的
CHANGE
操作中提交表单


这样,只有在所有相关字段都已填写的情况下,您才能在更改时提交表单。

我是Redux新手。我会这样做的。我将在减速器中保持一个状态,称为“personList”。我将把所有组件放在一个容器中,并将personList映射到名为“propPersonList”的容器属性。当我创建ListItemComponent时,我还会将列表中的人的索引作为属性“ProIndex”传递给该组件。两个输入的onChange处理程序将调度一个有效负载为{index:this.props.propIndex,value:event.target.value}的操作,然后触发一个到后端的PUT请求(使用lodash模块来限制它,而不是每次输入更改都触发它)。减速器将负责操作,并根据有效负载更新状态。add按钮将发送另一个操作,reducer只需向状态添加一个空实体,然后触发对后端的请求。remove按钮将发送一个以索引作为有效负载的操作,reducer将从列表中删除相应的实体

您有一个选项,可以在输入字段的模糊事件中保存表单,但当您只有一个输入字段时,这是一个很好的选项。但是这里有两个输入字段,所以您应该有一个提交按钮。或者,如果您仍然希望不提交,那么您必须先在blur上保存表单,然后再发送已保存项目的更新请求。感谢您的回答,我不想提交更改中的所有实体,只提交相关实体,例如,仅提交已删除的实体。假设此列表是我的用户列表-我不想在对特定用户进行更改时更新我的所有用户。您不必提交所有内容。每个
更改
操作都有已更改的字段,您将只提交此字段以及任何其他相关字段。谢谢@squgeim,我开始理解-所以您实际上说-不要使用表单提交-只使用操作?是的。这样,您可以根据需要定制请求。谢谢您的回答-您会在建议中使用Redux表单吗?如果是这样的话,您如何处理关于不同CRUD场景的提交?我认为没有必要使用Redux表单。基本上,所有的请求都是通过异步调用完成的,当您从请求中得到响应时(如果需要),您可以调度一个操作来更新状态。