node.js - 某些代码仅在 chrome 调试器处于事件状态时有效

标签 node.js react-native momentjs

我正在开发一个 react native 应用程序,我正在尝试使用 moment 格式化日期。

日期看起来像“02-16-2016 09:04:23”

function formatTime(date){

  var formattedDate = moment(date).format('MM:ss A');

  return formattedDate;
}

如果 chrome 调试器处于事件状态,则工作正常。但如果我禁用它,我得到的只是“无效日期”

与我正在使用的解码函数相同

var that = this;
MessagesService.getMessageBody(selectedMessage)
    .then(function(messageBody){

        var decodedData = window.atob(messageBody.messages);

        that.setState({
          messageBody: decodedData
        })
    })
    .catch(function(err){
        console.log(err);
    })

显示解码后的数据

<Text> Body: {this.state.messageBody} </Text>

并显示日期

<View style = {[MessageStyles.senderItem, MessageStyles.date]}>
       <Text>
          {this.formatTime(message.createDateTime)}
       </Text>
</View>

也许这是在 native react 中执行此操作的糟糕方法?仍在学习,所以我可能会做一些不好的练习。

最佳答案

我最近了解到,当使用chrome调试器时,react native使用不同的JS引擎。调试时使用chrome JS引擎,否则使用JavaScriptCore。根据这篇文章

http://ruoyusun.com/2015/11/01/things-i-wish-i-were-told-about-react-native.html

但是对于日期的实际问题,JavaScriptCore 引擎似乎不喜欢用 - 解析日期。我必须使用正则表达式将 - 替换为/,然后我所有的日期操作都工作正常。

02-16-2016 09:04:23 被视为无效

02/16/2016 09:04:23 被视为有效

关于node.js - 某些代码仅在 chrome 调试器处于事件状态时有效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35660278/

相关文章:

node.js - 无法返回链式 promise 结果

javascript - 如何计算 Mongoose 中具有一个不同字段的记录?

javascript - 查找过去 7 天内的平均事件数

javascript - 在javascript中使用DST的日期范围

node.js - NodeJS服务器每小时获取时间戳

node.js - 将静态 URL 更改为动态 - NodeJS

javascript - function Name.prototype.method Name() 和 fun Object.methodName() 中调用函数有什么区别吗?

javascript - 在底部选项卡导航器中卸载非事件屏幕(重置堆栈)

javascript - 如何将 props 传递给 ListHeaderComponent?

javascript - MomentJS 设置时区而不改变时间