Який рекомендований спосіб використовувати власні бібліотеки javascript у реагуванні нативним? Чи існують якісь конкретні обмеження?
Який рекомендований спосіб використовувати власні бібліотеки javascript у реагуванні нативним? Чи існують якісь конкретні обмеження?
Відповіді:
Простенька! З кореня вашого проекту просто запустіть:
npm install moment --save
Тоді ви можете імпортувати його у свій код:
import moment from 'moment';
var now = moment().format();
Обмеженнями буде будь-що, що намагається "дотягнутися" до браузера (якого в цьому контексті не існує). Ось чому для таких речей, як XHR, існують поліфіли.
В офіційній документації є приклади використання бібліотеки моментів
require('lodash')
- порожній об’єкт. Я також спробував 'lodash-node'.
Деякі сучасні методи працюють у React Native, а інші ні. Я підозрюю, що це пов’язано зі слухачами.
Я можу використовувати момент для форматування:
moment(new Date()).format("YYYY-MM-DD hh:mm:ss")
Але не для активного форматування:
moment(new Date()).format("YYYY-MM-DD hh:mm:ss").fromNow()
Якщо ви спеціально хочете використовувати moment.js для реагування або реагування рідного, подивіться на react-moment
компонент реакції для бібліотеки моментів за адресою https://github.com/headzoo/react-moment .
Щоб використати moment-реакцію в реакції native, запустіть:
npm install --save moment react-moment
Потім у файлі, який ви хочете використати момент:
import Moment from 'react-moment';
Нарешті, використовуйте його за бажанням, наприклад:
<Moment element={Text} fromNow>
{ post.datePublished }
</Moment>
Реквізит element={Text}
спеціально призначений для рідної реакції. Це гарантує, що результуючий рядок відображається в Text
компоненті. Без цього рідна реакція видасть помилку.
element={Text}
ця штука вирішила мою помилку. Дякую !!
Схоже, що зараз деякі модулі npm несумісні з пакувальником . Насправді ще не розбирався, чому, але до чого я вдався, це наявність папки постачальника та копіювання через веб-версію, але вгорі спеціально
/**
* @providesModule moment
*/
І внизу, змінивши його на:
module.exports = moment;
Ще не впевнений, що це правильний спосіб, але упаковка все ще досить нова для всіх.