嘿,我是React Native的新手,我创建了一个应用程序,在调试它时一切正常,但是在构建它时,它在屏幕上崩溃并给我这个错误
2019-07-05 12:29:53.403 21905-21925 /? E / AndroidRuntime:致命例外:mqt_native_modules 程序:com.foo,PID:21905 com.facebook.react.common.JavascriptException:需要未知模块“ ./locale/fr”。,堆栈: h @ 2:1448 d @ 2:868 DT @ 714:16712 电话@ 714:17738 Yt @ 714:16801 n @ 713:2042 锡@ 90:30120 或@ 90:45887 na @ 90:72881 ra @ 90:73371 OA @ 90:80972 Wa @ 90:80310 上@ 90:83367 德@ 90:13673 我们@ 90:13846 receiveTouches @ 90:14605 值@ 28:3311 @ 28:822 值@ 28:2565 值@ 28:794 值@ -1
at com.facebook.react.modules.core.ExceptionsManagerModule.showOrThrowError(ExceptionsManagerModule.java:54)
at com.facebook.react.modules.core.ExceptionsManagerModule.reportFatalException(ExceptionsManagerModule.java:38)
at java.lang.reflect.Method.invoke(Native Method)
at com.facebook.react.bridge.JavaMethodWrapper.invoke(JavaMethodWrapper.java:372)
at com.facebook.react.bridge.JavaModuleWrapper.invoke(JavaModuleWrapper.java:158)
at com.facebook.react.bridge.queue.NativeRunnable.run(Native Method)
at android.os.Handler.handleCallback(Handler.java:836)
at android.os.Handler.dispatchMessage(Handler.java:103)
at com.facebook.react.bridge.queue.MessageQueueThreadHandler.dispatchMessage(MessageQueueThreadHandler.java:29)
at android.os.Looper.loop(Looper.java:203)
at com.facebook.react.bridge.queue.MessageQueueThreadImpl$4.run(MessageQueueThreadImpl.java:232)
at java.lang.Thread.run(Thread.java:761)
当我在这里处理第一个代码时,这是我的代码在两个地方:
import 'moment/locale/fr';
import moment from 'moment';
this.state = {
date: moment().locale('fr').format('dddd HH:mm');
}
and set the state to a Text
第二个是此类
import 'moment/locale/fr';
import moment from 'moment';
componentDidMount() {
console.log(this.props.hours[0].openAt);
const date = new Date();
const day = date.getDay();
moment.locale('fr');
for (let i = 0; i < this.props.hours.length; i++) {
if (this.props.hours[i].day === day) {
const format = 'hh:mm';
const time = moment(date, format);
const beforeTime = moment(this.props.hours[i].openAt, format);
const afterTime = moment(this.props.hours[i].closeAt, format);
if (time.isBetween(beforeTime, afterTime)) {
this.setState({
ouvert: true
});
} else {
this.setState({
ouvert: false
});
}
}
}
}
答案 0 :(得分:0)
我也面临这个问题,并通过将moment
的版本降级为2.18.1
来解决。
如果您使用的是moment-timezone
,则需要在package.json
中添加以下内容
"resolutions": {
"moment-timezone/moment": "2.18.1"
},
答案 1 :(得分:0)
这样解决:(在我的情况下,我启用了英语和意大利语本地化)
将我的本地化文件导入为:
import * as en from "./locale/en.json";
import * as it from "./locale/it.json";
<块引用>
集成矩定位
var moment = require("moment");
var itLocale = require("moment/locale/it");
var enLocale = require("moment/locale/en-gb");
moment.locale("en", enLocale);
moment.locale("it", itLocale);
现在适用于调试/发布模式。