【发布时间】:2019-07-22 00:35:36
【问题描述】:
我正在尝试使用带有 firestore 数据库的 react native 构建应用程序。我对 react native 框架(以及使用 firestore)相当陌生,所以我可能试图以错误的方式解决这个问题。
我有一个运行良好且已填充的数据库。对于这个应用程序的每个用户,我想在他们的条目中添加一个map。我想用这个map 来存储一些关于用户的数据,他们可以稍后填写。
这里有一些代码:
componentDidMount() {
this.readProfile(this.props.uid);
}
readProfile = (uid) => {
this.props.getProfile(uid).then((profile) =>
{
if(!profile.userMap)
{
profile.userMap = generateUserMap();
}
...
}
export const generateUserMap = function () {
var map = new Map();
SomeEnum.forEach((key, value) => {
map.set(key, false);
});
AnotherEnum.forEach((key, value) => {
map.set(key, false);
});
OneMoreEnum.forEach((key, value) => {
map.set(key, false);
});
return map;
};
...
<Input
value={this.state.profile.userMap[SomeEnum.Foo]}
onChangeText={(foo) => this.updateUserMap({ foo })}
/>
我希望这段代码在我加载页面时读取用户的个人资料。那部分似乎工作正常。我的下一个问题是正确初始化map 对象。代码似乎没有正确初始化地图,但我不知道为什么。这就是我这么说的原因:
TypeError: 无法读取未定义的属性“Foo”
堆栈跟踪指向我的组件的Connect() 方法。
任何帮助将不胜感激。
编辑:为疏忽道歉,这里是 updateUserMap 函数:
updateUserMap = (property) => {
const profile = Object.assign({}, this.state.profile, property);
this.setState({ profile });
}
【问题讨论】:
-
updateUserMap函数在哪里?? -
如@hongdevelop所说,能否给我们updateUserMap函数的实现?
-
@hongdevelop 当然,很抱歉忽略了这一点!更新问题。
标签: react-native google-cloud-firestore