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
是组件的状态变量,不在减速器内如果这不是你要找的,我会删除答案。