react-native - 使用 arrayUnion 会导致内存泄漏
问题描述
我试图将一个状态数组上传到 Firestore 中的一个数组,但是它发出警告“无法对未安装的状态执行更新”。当我进入数据库时,我可以看到数据尚未存储。
const dbh = firebase.firestore();
this.state.players.map(player => {
if(player.Present === true){
this.setState({
enrolledPlayersList: [...this.state.enrolledPlayersList, player.id]
})
}
})
const finalList = this.state.enrolledPlayersList
dbh.collection("Groups").doc(this.state.group)
.collection('Enrolled').doc('ids').update({
players: firebase.firestore.FieldValue.arrayUnion(finalList)
})
解决方案
我已经通过将与数据库的连接放在 componentDidMount() 函数中解决了这个问题,如下所示
componentDidMount(){
const dbh = firebase.firestore();
this.state.players.map(player => {
if(player.Present === true){
this.setState({
enrolledPlayersList: [...this.state.enrolledPlayersList, player.id]
})
}
})
}
推荐阅读
- azure-api-management - Azure API 管理策略检查包含 URL
- servicestack - 扩展的 OrmLiteAuthRepository 未正确绑定
- ios - 如果一个 SKAction 被移除,完成是否仍然运行?
- python - 删除文本中的标记链接
- python - 使用 python-can 模拟 CAN / OBD2 车辆
- javascript - 错误:不匹配的右括号,我确定没有
- python - 使用fuzzywuzzy 进行字符串匹配——是使用Levenshtein 距离还是Ratcliff/Obershelp 模式匹配算法?
- c - 将 printf 重定向到 fopencookie
- r - 用“at”指定时如何绘制预测边距?
- c++ - 如何从 OSX 上的 readdir 获取正确的文件名?