Javascript 从数据库获取数据后,setState在react native中不工作
这是我使用react native的第一天,我正在使用mangodb,我将记录存储在db中并获取记录,现在我想在flatlist中显示,需要设置state(),但它会抛出未定义的错误Javascript 从数据库获取数据后,setState在react native中不工作,javascript,reactjs,react-native,setstate,Javascript,Reactjs,React Native,Setstate,这是我使用react native的第一天,我正在使用mangodb,我将记录存储在db中并获取记录,现在我想在flatlist中显示,需要设置state(),但它会抛出未定义的错误 db.find({}, function (err, docs) { this.setState({ dataSource: docs }); }); docs是一个用户数组,我可以在控制台中打印数据,但问题是如何使用setState在datasource中设置此数据。这与您调用setState
db.find({}, function (err, docs) {
this.setState({ dataSource: docs });
});
docs是一个用户数组,我可以在控制台中打印数据,但问题是如何使用setState在datasource中设置此数据。这与您调用setState的方式有关<代码>此在函数上下文中未指向组件类。解决此问题的一种方法是使用箭头函数:
db.find({}, (err, docs) => {
this.setState({ dataSource: docs });
});
如果无法使用箭头函数,可以手动将函数绑定到外部上下文:
function cb (err, docs) {
this.setState({ dataSource: docs });
}
db.find({}, cb.bind(this));
javascript中
这个
关键字背后的逻辑在这个问题中进行了详细讨论:或者在凯尔·辛普森(Kyle Simpson)的这本了不起的书中:它与调用setState的方式有关<代码>此在函数上下文中未指向组件类。解决此问题的一种方法是使用箭头函数:
db.find({}, (err, docs) => {
this.setState({ dataSource: docs });
});
如果无法使用箭头函数,可以手动将函数绑定到外部上下文:
function cb (err, docs) {
this.setState({ dataSource: docs });
}
db.find({}, cb.bind(this));
javascript中这个
关键字背后的逻辑在这个问题中进行了详细讨论:或者在Kyle Simpson的这本神奇的书中: