【发布时间】:2017-07-02 00:24:28
【问题描述】:
目前我正在开发一个功能,以便用户可以删除他或她自己的帐户。我正在使用react-meteor-data 响应式检索用户对象。
现在我可以在服务器上调用我的方法时成功地从用户集合中删除用户,但是删除用户后客户端上的Meteor.user() 对象不再是反应性的。有什么我需要关心的步骤吗?我在想我可以这样做:
- 用户删除他/她自己的帐户。
- 用户在用户集合中被删除并将被注销/或者
Meteor.user()在删除用户后是被动的
到目前为止我做了什么:
容器
import { Meteor } from 'meteor/meteor';
import { createContainer } from 'meteor/react-meteor-data';
import AccountDetail from "../components/user/AccountDetail.component.jsx";
export default EventDetailContainer = createContainer(({ id }) => {
const user = Meteor.user();
const selfDelete = () => {
Meteor.call("selfDelete", error => {
if (!error) {
console.log("Success self delete");
} else {
console.log("fail self delete");
}
});
}
return {
user,
selfDelete
};
}, AccountDetail);
服务器方法
Meteor.methods({
selfDelete() {
console.log(this.userId);
try {
Meteor.users.remove(this.userId);
} catch (e) {
throw new Meteor.Error('self-delete', 'Failed to remove yourself');
}
}
});
所以在调用selfDelete() 后,用户会从集合中删除,但在客户端Meteor.user() 不再更新。
也许有人知道为什么会这样,或者您知道让用户删除自己帐户的更好方法。
提前致谢
【问题讨论】: