React-Native未处理的承诺拒绝.replace不是函数

时间:2019-07-21 15:14:40

标签: react-native

我是React-Native的新手,遇到一个我无法解决的问题。我正在关注一个涉及一些XML解析的基本API教程。我收到以下错误:

[未处理的承诺拒绝:TypeError:e.replace不是函数。 (在'e.replace(/ \ s {2,} / g,“”)'中,'e.replace'未定义)] *如果需要,我可以提供更多错误详细信息*

从下面的代码(请注意,我也有一些基本的HomeScreen代码调用该类):

var XMLParser = require('react-xml-parser');

export default class MLBGamedayApi {

constructor() { }

static getDayUrl(year, month, day){
    if (month < 10){ month = "0" + month; }
    if (day < 10){ day = "0" + day; }

    return MLBGamedayApi.BaseUrl
        + "/components/game/mlb/"
        + "year_" + year + "/"
        + "month_" + month + "/"
        + "day_" + day + "/";
}

static getListOfGamesForDay(year, month, day){
    var epgURL = MLBGamedayApi.getDayUrl(year, month, day) + "epg.xml";
    return fetch(epgURL)
        .then(function(response) { return response.text; })
        .then(function(text) { return MLBGamedayApi.parseXML(text) })
        .then(function(data) {
            var games = data.getElementsByTagName("game");
            var urls = games.map(function(game) {
                var url = game.attributes["game_data_directory"];
                return url;
            });

            return Promise.resolve(urls);
        })            
}

static parseXML(s){
    var xml = new XMLParser().parseFromString(s);
    return Promise.resolve(xml);
  }
}

MLBGamedayApi.BaseUrl = "https://gd2.mlb.com";

我的直觉告诉我该错误是由parseXML方法引起的。让我感到困惑的是,我实际上没有调用.replace,所以想知道为什么甚至抛出该错误-也许我使用的库版本错误?

在这些初学者阶段非常感谢提供的任何帮助。

谢谢!

0 个答案:

没有答案