【问题标题】:.replace function won't replace numbers in JavaScript?.replace 函数不会替换 JavaScript 中的数字?
【发布时间】:2021-05-02 09:06:12
【问题描述】:

我正在尝试将所有'%2F''%2B' 更改为'/''+',以便从Firebase 检索编码图像的URL,但不知何故它向我显示了error of undefined不是一个对象(评估'NewText.replace'

以下是部分代码:

getURL(){
    db.ref('/').once('value', (data) =>{
        let RetrieveData=data.toString();
        var NewText = RetrieveData.photoPath;
        var FinalText = NewText.replace(/%2F/g, "/").replace(/%2B/g, "+"); 
        this.setState({
          urlHolder: FinalText, 
      })
    });
  }

是不是因为.replace函数不能替换数字?如果是,那我应该使用什么功能呢?

【问题讨论】:

  • 不,这意味着RetrieveData 包含未定义。除此之外,您应该使用 decodeURIComponent 来完成此任务。
  • 您可以(/应该)简单地使用decodeURIComponent,而不是使用正则表达式
  • 非常感谢您的回复,我对 JavaScript 和 React Native 还很陌生,不知道有内置函数。干杯,它现在可以工作了。

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


【解决方案1】:

当您从 Firebase 读取数据时,您会返回一个 DataSnapshot object。要从中获取 JSON 值,请在该 DataSnapshot 上调用 .val()

所以你最有可能在寻找的是:

let RetrieveData=data.val();

【讨论】:

    猜你喜欢
    • 2021-12-10
    • 1970-01-01
    • 1970-01-01
    • 2016-05-21
    • 2012-09-25
    • 1970-01-01
    • 1970-01-01
    • 2020-06-05
    • 1970-01-01
    相关资源
    最近更新 更多