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 AJAX完成后如何重置有状态组件?_Reactjs_Redux - Fatal编程技术网

Reactjs AJAX完成后如何重置有状态组件?

Reactjs AJAX完成后如何重置有状态组件?,reactjs,redux,Reactjs,Redux,我有一个有状态的组件,可以在显示数据和编辑表单中的相同数据之间切换。保存数据会触发一个操作REQUEST\u UPDATE,该操作通过AJAX调用API,并在更新成功时发送RECEIVE\u UPDATE(使用redux thunk) 成功保存后,我希望有状态组件将其编辑状态更改回false,使表单消失 一种方法是重置组件willreceiveprops中的编辑状态,比较通过props传递的数据。这似乎有点笨拙,因为编辑状态只应在接收更新操作后更改。有没有一个优雅的方法来实现这一点 更新:更多详

我有一个有状态的组件,可以在显示数据和编辑表单中的相同数据之间切换。保存数据会触发一个操作
REQUEST\u UPDATE
,该操作通过AJAX调用API,并在更新成功时发送
RECEIVE\u UPDATE
(使用redux thunk)

成功保存后,我希望有状态组件将其
编辑
状态
更改回
false
,使表单消失

一种方法是重置
组件willreceiveprops
中的
编辑状态,比较通过props传递的数据。这似乎有点笨拙,因为
编辑
状态只应在
接收更新
操作后更改。有没有一个优雅的方法来实现这一点

更新:更多详细信息

// component, connected to the reducer
state: { editing: true }
props: { name, address, city }

// reducer data
{ name: "Toby", address: "123 Test Ave", city: "NYC" }

一种常见的模式是让
REQUEST\u UPDATE
在redux存储中设置一个值,例如
isupdateing:true
。然后
RECEIVE\u UPDATE
将其设置回false。然后,您的有状态组件可以连接到
isupdate
prop,并在其更改时接收它。

receive\u UPDATE
的减速机中设置
editing=false
应该可以完成此任务。说明:
editing
是组件的状态变量,不在减速器内如果这不是你要找的,我会删除答案。