【问题标题】:Getting data from Firebase real-time on react-native在 react-native 上实时从 Firebase 获取数据
【发布时间】:2020-09-21 23:54:08
【问题描述】:

我有一个正在初始化 firebase 数据库的 js 文件,我想连接到 firebase 实时数据库并获取相关信息。

我正在调用的函数:

get getName() {
var ref = firebase.database().ref('variable').child('variable').child('variable');

ref.on('value', gotData, errData);



function gotData(data) {

    console.log(data.val());
    console.log(data.val().ogrIsim + 'getname calisti');
    console.log(String(data.val().ogrIsim));
    this.setState({
        name: (data.val().ogrIsim)
    });
    // return String(data.val().ogrIsim);
}

function errData(err) {
    console.log('errorrrr!!!' + err);
}

}

console.log(data.val().[variableName]);我将控制台打印为行中的字符串,但我无法更改它,因为它说在 setstate e 中有一个不是字符串的对象。我应该如何进行?

和错误信息:

【问题讨论】:

  • 您在设置状态时是否遇到错误?如果是,请分享错误。
  • 我想你在找dersAdi: data.val()[VariableNAME],所以在val()之后减去.
  • 我添加了错误信息并更新了代码块。
  • 我试试这个。没有 '。'声明但没有工作@Frank

标签: javascript reactjs firebase react-native firebase-realtime-database


【解决方案1】:

出现错误消息是因为thisgotData 函数内部的含义与在它外部的含义不同。

有很多方法可以解决这个问题,但在这种情况下,明确的bind() 可能是最简单的:

var ref = firebase.database().ref('variable').child('variable').child('variable');

ref.on('value', gotData, errData);

function gotData(data) {
  this.setState({ name: (data.val().ogrIsim) });
}.bind(this);
function errData(err) {
  console.log('errorr' + err);
}

有关更多信息,请参阅How to access the correct `this` inside a callback?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-16
    • 1970-01-01
    • 2021-04-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多