什么可以使功能 运行 成为模拟器而不是设备?
What can make a functionality run a simulator and not on the device?
我正在使用 React Native 构建应用程序。
我正在获取从数据库中获取的一组值,以便为用户提供一个每 X 秒(3s atm)刷新一次的折线图。
这在 iOS 模拟器上运行良好,但当部署到 TestFlight 和 运行 设备上的应用程序时,曲线没有显示,什么也没有发生。
因为我可以使用其他一些需要从数据库中获取数据的功能,所以我发现问题不是来自 API 请求。
我目前使用 react-native-chart-kit,但我也尝试使用 react-native-svg-charts,问题仍然存在.
有什么提示吗?
当我显示获取值的数组时,问题是一样的,每 3 秒模拟器上就会出现一个新值,但它不会在设备上显示任何内容。
终于找到问题了
问题是在 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 请求。
如果有人可以解释,请随意!
我正在使用 React Native 构建应用程序。 我正在获取从数据库中获取的一组值,以便为用户提供一个每 X 秒(3s atm)刷新一次的折线图。 这在 iOS 模拟器上运行良好,但当部署到 TestFlight 和 运行 设备上的应用程序时,曲线没有显示,什么也没有发生。 因为我可以使用其他一些需要从数据库中获取数据的功能,所以我发现问题不是来自 API 请求。 我目前使用 react-native-chart-kit,但我也尝试使用 react-native-svg-charts,问题仍然存在.
有什么提示吗?
当我显示获取值的数组时,问题是一样的,每 3 秒模拟器上就会出现一个新值,但它不会在设备上显示任何内容。
终于找到问题了
问题是在 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 请求。
如果有人可以解释,请随意!