reactjs - 在 Meteorjs 中显示最新创建的用户和角色时的 Pub-Sub 问题
问题描述
我正在使用以下流星方法创建一个新用户:
Meteor.methods({
"users.add": function(newUser) {
let cResult = Accounts.createUser({
username: newUser.username,
email: newUser.email
password: newUser.password,
profile: {
first_name: newUser.first_name,
last_name: newUser.last_name,
clinic: newUser.clinic
}
});
for (var index in newUser.roles) {
Roles.addUsersToRoles(cResult, newUser.roles[index].label);
}
return true;
},
"users.addRole": function(userId, newRole) {
Roles.addUsersToRoles(userId, newRole);
return true;
}
});
以及下面的代码来订阅 mongo 集合:
export default withTracker(() => {
let usersSubscription = Meteor.subscribe("allUsers");
let rolesSubscriptioin = Meteor.subscribe("allRoles");
const eachReady = usersSubscription.ready() &&
rolesSubscriptioin.ready();
const loading = usersSubscription ? !eachReady : true;
return {
loading,
users: Meteor.users.find().fetch(),
roles: Meteor.roles.find().fetch()
};
})(Users);
我正在使用反应来呈现信息。当我创建一个新用户时,除了角色信息之外,我可以获得新创建的用户。导致反应组件中的“地图未定义”错误。
我是新来的流星任何帮助都是好的。
解决方案
在尝试了多种解决方案(如 getDerviedStateFromProps 生命周期方法和其他所有方法)后,我在渲染时对未定义状态进行了简单检查,从而解决了问题,而无需进入任何生命周期方法。这可能是不正确的,所以仍然愿意接受建议。
推荐阅读
- excel - 特定数据集的重复值、多个条件和计数
- reactjs - 在异步函数的回调中设置状态
- tensorflow - 用于 keras model.fit 的 steps_per_epoch 与数据增强
- vue.js - 如何在选择标签中呈现来自 api 的数据?
- vba - 从多个附加的电子邮件中提取嵌套文件
- python - 如何创建更新numpy数组的赢/输计数器
- jquery - 甜蜜警报 2 多个复选框
- excel - 在循环的每次迭代中变化的特定范围的总和
- java - 为什么 Neo4j java 进程在随机范围内大块打开端口?
- javascript - 基于单选按钮,如何根据单选值列出html文档中的星星?