我对 alt.js 相当陌生,并且对更新成功处理程序中的状态有疑问。
假设我有一个 UserStore 并且想要删除一个用户。我使用应该删除的用户触发删除用户操作id
。id
源向后端发送一个删除请求。该请求有效,并且源触发了成功操作。
如何在成功操作处理程序中从 StoreState 中删除用户,因为我没有获得 id 或有关已通过的请求的任何其他信息?
我对 alt.js 相当陌生,并且对更新成功处理程序中的状态有疑问。
假设我有一个 UserStore 并且想要删除一个用户。我使用应该删除的用户触发删除用户操作id
。id
源向后端发送一个删除请求。该请求有效,并且源触发了成功操作。
如何在成功操作处理程序中从 StoreState 中删除用户,因为我没有获得 id 或有关已通过的请求的任何其他信息?
您可以使用interceptResponse 功能
所以,基本上,你应该在你的数据源中有一些这样的结构:
deleteUser: {
remote (state, id) {
//Some backend call here
},
interceptResponse (data, action, args) {
// Here you can access arguments, that were passed to the remote method
// via 'args' argument. What you return from this function will be passed
// to further callbacks (success, error, etc.)
return {data: data, id: args[0]};
}
}
因此,在这种情况下,使用远程调用返回的数据,您还将将原始 id 传递给回调,并能够从您的商店中删除用户。