我想使用db-models创建的数据生成我的视图:
https://www.npmjs.com/package/react-native-db-models
但是有问题:没有任何附加,我的观点保持空白。 1)db(for循环)的大小等于0(但在 DB.bills.get_all()之后它必须是8。
构造
int count = 0;
printf("how many do you want to enter: ");
scanf("%d", &count);
int val = 0;
int sum = 0;
int i = 0;
while(scanf("%d ", &val) == 1 && i++ < count)
sum += val;
ComponentDidMount()
constructor(props) {
super(props);
var bdd = [];
const ds = new ListView.DataSource({rowHasChanged: (r1, r2) => r1 !== r2});
this.state = {
dataSource: ds.cloneWithRows(bdd)
};
}
我的DB.bills.get_all()中有 console.log(db)
componentDidMount() {
console.log("START");
let self = this;
var db = [];
DB.bills.get_all(function(result) {
db = result;
console.log(db);
});
let newArray = self.state.dataSource._dataBlob.s1.slice();
for(var i = 0; i<Object.keys(db).length ; i++){
newArray[i] = {
...self.state.dataSource[i],
field: JSON.stringify(db),
};
console.log("i : " + i + " db : " + db);
}
self.setState({dataSource: self.state.dataSource.cloneWithRows(newArray),
});
console.log("DS : ", this.state.dataSource);
console.log("END");
}
我已经开始工作2天了。请帮帮我^^“
答案 0 :(得分:1)
那是因为你的DB.bills.get_all
函数是异步的。当您获得result
时,您已经计算了newArray
并设置了您的州。在计算result
并克隆数据源之前,您需要等待newArray
。尝试将DB.bills.get_all
之后的代码放在回调函数中。