Вы создаете новый экземпляр вашего класса UserInfo, и в этот момент значение , хранящееся внутри вашей переменной username, представляет собой пустую строку .Если вы хотите получить значение из базы данных после вызова функции getUserInfo, вы можете вернуть значение из вашей функции и использовать это значение внутри вашего реагирующего компонента, как показано ниже: -
class UserInfo {
constructor(props) {
this.username = ""
this.getUserInfo
}
getUserInfo = () =>{
return new Promise((resolve, reject) => {
db.transaction((tx) => {
tx.executeSql('SELECT * FROM users', [], (tx, results) => {
let row = results.rows.item(0);
console.log("UserID: " + row.id) // return value from db, working
// this.username = row.id
resolve(row.id);
});
});
})
}
}
export default (new UserInfo())
После возврата значения изВ вашей функции вы можете использовать это значение внутри вашего реагирующего компонента, как показано ниже: -
UserInfo.getUserInfo().then(username => {
this.setState({username})
});
сохранить это значение внутри вашего состояния, а внутри вашего компонента вы можете использовать его, как показано ниже: -
<Text>{this.state.username}</Text>