如何在反应原生中使用诸如moment.js之类的javascript库

时间:2015-03-27 08:01:33

标签: react-native

在react native中使用本机javascript库的推荐方法是什么?有没有具体的限制?

5 个答案:

答案 0 :(得分:100)

轻松自在!从项目的根目录开始运行:

npm install moment --save

然后您可以在代码中导入它:

import moment from 'moment';
var now = moment().format();

限制将是任何试图"伸出"浏览器(在此上下文中不存在)。这就是为什么XHR之类的东西会被填充的原因。

official documentation有关于如何使用时刻库​​的示例

答案 1 :(得分:9)

一些片刻方法在React Native中起作用,而其他方法则不起作用。我怀疑它与听众有关。

我可以使用片刻进行格式化:

moment(new Date()).format("YYYY-MM-DD hh:mm:ss")

但不是主动格式化:

moment(new Date()).format("YYYY-MM-DD hh:mm:ss").fromNow()

答案 2 :(得分:4)

使用npm库只需将此命令与相应的库名称

一起使用
npm install moment --save

例如。)npm install {your library name here} --save

然后只需在您的课程中导入并使用

import moment from 'moment';

答案 3 :(得分:2)

现在看起来像是npm modules are not compatible with the packager。 Haven并没有真正挖掘为什么,但我一直在做的是拥有一个供应商文件夹并复制网页版本,但在顶部专门放置

/** * @providesModule moment */

在底部将其更改为:

module.exports = moment;

不确定这是否是正确的方法,但包装对每个人来说都是新鲜的。

答案 4 :(得分:0)

如果您特别想在react或react native中使用moment.js,请在https://github.com/headzoo/react-moment处查看react-moment(矩矩库的react组件)。

要在react native中使用react-moment,请运行:

npm install --save moment react-moment

然后在您要使用的时刻输入文件:

import Moment from 'react-moment';

最后,根据需要使用它,例如:

<Moment element={Text} fromNow>
    { post.datePublished }
</Moment>

道具element={Text}专用于本地反应。它确保结果字符串在Text组件中呈现。没有这个,react native将引发错误。