mongodb - React-redux + React-native-local-mongodb
问题描述
我在我的应用程序中使用 react-native-local-mongodb 和 react-redux。在状态更新后加载数据的数据库查询很慢。
我正在使用componentDidMount
Redux 加载部分数据库,但结果很复杂。我无法替换状态,因为条件块(if else)在替换之前关闭,然后它稍后返回我的数据。
在主页上,onLoadDatabase()
正在调用 componentDidMount
正在加载减速器
componentDidMount() {
console.log('1_componentDidMount');
this.props.onLoadDatabase();
console.log('8_state after loading db: '+this.props.list);
};
我在减速器中的功能是:
case LOAD_DATABASE:{
console.log('2');
let trainingsArray=null;
mioDB.count({},(err,count)=>{
console.log('3_count:'+count);
if(count>=2){//it can't loads the database if there are two elements
console.log('4');
mioDB.find({},(err,trainings)=>{
console.log('5: '+JSON.stringify(trainings));
trainingsArray=trainings;
});
}else{//it must loads the database
console.log('4');
mioDB.insert([training1,training2],function(err,trainings){
console.log('5_');
mioDB.find({},(err,trainings)=>{
console.log('5.1: '+JSON.stringify(trainings));
trainingsArray=trainings;
});
});
}
console.log('6');
console.log('7.1'+state);
Object.assign({},state,{list:trainingsArray});
});
console.log('7.2'+state);
return Object.assign({},state,{list:trainingsArray});
}break;
调试器输出:
解决方案
推荐阅读
- java - 获取空值?
- python - 如何在python中使用if语句时迭代pandas groupby对象
- reactjs - 更新循环matter.js(IIFE)无法访问类组件的道具?
- c++ - 透明图标在 Visual Studio C++ 可执行文件中具有白色背景
- wordpress - wordpress 帖子中的 Nivo Slider 未显示标题
- php - 我在路由 codeigniter 时遇到问题
- powershell - Powershell:如何从输出中选择特定值?
- apache-spark - 如何在 Spark Structured Streaming 中将流式 DataFrame 写入多个接收器
- laravel - 如何创建基于 Laravel 角色和权限模型
- javascript - 第二个元素上的 Node.js 页面评估