79

在本机反应中使用本机 JavaScript 库的推荐方法是什么?有什么具体限制吗?

4

5 回答 5

113

十分简单!从项目的根目录运行:

npm install moment --save

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

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

限制将是任何试图“接触”浏览器的东西(在这种情况下不存在)。这就是为什么有像 XHR 这样的 polyfills 的原因。

官方文档中有关于如何使用矩库的示例

于 2015-03-27T12:44:01.813 回答
12

一些即时方法在 React Native 中有效,而另一些则无效。我怀疑这与听众有关。

我可以使用 moment 进行格式化:

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

但不适用于活动格式:

moment(new Date()).format("YYYY-MM-DD hh:mm:ss").fromNow()
于 2017-05-18T06:10:49.373 回答
7

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

npm install moment --save

例如) npm install {您的库名称在这里} --save

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

import moment from 'moment';
于 2017-11-29T11:11:43.710 回答
6

如果您特别想在 react 或 react native 中使用 moment.js,请查看https://github.com/headzoo/react-momentreact-moment的 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 会抛出错误。

于 2019-06-02T11:43:01.620 回答
2

现在看起来,一些npm 模块与 packager 不兼容。还没有真正深入研究为什么,但我一直在做的是拥有一个供应商文件夹并复制网络版本,但在顶部特别放置

/** * @providesModule moment */

在底部将其更改为:

module.exports = moment;

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

于 2015-03-28T20:26:09.150 回答