什么可以使功能运行模拟器而不是在设备上运行?

时间:2020-08-21 18:31:36

标签: react-native charts ios-simulator react-native-chart-kit

我正在使用React Native构建一个应用程序。 我正在获取从数据库中获取的值的数组,以便向用户提供每X秒(3s atm)刷新的折线图。 这在iOS模拟器上可以正常工作,但是在部署到TestFlight并在设备上运行应用程序时,不会显示曲线,什么也不会发生。 由于我可以使用其他一些需要从数据库中获取数据的功能,因此我发现问题不是来自API请求。 我目前使用的是 react-native-chart-kit ,但是我也尝试过使用 react-native-svg-charts ,问题仍然存在。

有任何提示吗?

当我显示获取的值的数组时,问题是相同的,新值每3秒出现在模拟器上,但是在设备上什么都不显示。

1 个答案:

答案 0 :(得分:0)

我终于找到了问题。

该问题是在API请求中发现的。 我的请求需要2个时间戳参数:开始时间/结束时间

我总是使用浏览器调试应用程序,并从RN项目启动ios sim。

这次,我尝试从Xcode运行一个项目,并将Scheme编辑为release,而不是debug。

当我从Xcode检查控制台时,我注意到我的开始时间时间戳记为“ NaN”。不是结束时间时间戳记。

回到RN项目和浏览器控制台,时间戳没问题。

我做了一些随机更改,现在可以正常工作了。

这是我解决该问题之前所拥有的:

function formatDate(rawStamp) {
        const now = new Date(rawStamp);
        var convertToStr =
            now.getFullYear() +
            "-" +
            ("00" + (now.getMonth() + 1)).slice(-2) +
            "-" +
            ("00" + now.getDate()).slice(-2) +
            " " +
            ("00" + now.getHours()).slice(-2) +
            ":" +
            ("00" + now.getMinutes()).slice(-2) +
            ":" +
            ("00" + now.getSeconds()).slice(-2);

   
           return convertToStr
   }

   const nowStr = formatDate(Date.now() - 7200000) 
   const gameStampMinusX = Date.parse(nowStr) - (300000) 
   const gameStampMinusXToStr = formatDate(gameStampMinusX)

以下是解决问题的方法:

   const nowStr = formatDate(Date.now() - 7200000)
   const gameStampMinusX = Date.now() - 7200000 - 300000
   const gameStampMinusXToStr = formatDate(gameStampMinusX)

我是新手,所以我无法解释这种行为,但是似乎这个小小的变化使Xcode识别了时间戳,并正确地执行了API请求。

如果有人可以解释,请放心!

相关问题