未定义不是对象(评估'_expo.default.Constants')

cha*_*dra 2 module momentjs react-native expo

我在Constantsin处遇到错误const{manifest}=Expo.Constants并向我显示错误,因为 undefined 不是对象。我无法得到它。任何人都可以帮助我消除该错误。

我正在尝试在我的计算机上运行的 API 和我在手机上调试时建立连接。无论 IP 地址是什么,它都应该连接。

import moment from 'moment';
import Expo from 'expo';

const{ manifest} = Expo.Constants;
const api = manifest.packagerOpts.dev
? manifest.debuggerHost.split(':').shift().concat(':3000')
: 'productionurl.com'

const url ='http://localhost:3000';

export function getEvents(){
    return fetch(url)
    .then(response => response.json())
    .then(events => events.map( e =>({...e})));
}
export function formatDateTime(dateString){
    const parsed = moment(new Date(dateString));

    if(!parsed.isValid()){
        return dateString;
    }

    return parsed.format('H A on DD MMM YYYY');
}
export function formatDate(dateString){
    const parsed = moment(new Date(dateString));

    if(!parsed.isValid()){
        return dateString;
    }

    return parsed.format('DD MMM YYYY');
}

export function getCountdownParts(eventDate){
    const duration = moment.duration(moment(new Date(eventDate)).diff(new Date()));
    return{
        days:parseInt(duration.as('days')),
    };
}

Run Code Online (Sandbox Code Playgroud)

预期事件会从db.json文件显示在我的模拟器上,但我收到的错误是未定义。

Yos*_*ssi 5

以下对我有用:

代替

import Expo from 'expo';
Run Code Online (Sandbox Code Playgroud)

和(例如):

const { version } = Expo.Constants.manifest;
Run Code Online (Sandbox Code Playgroud)

这给出了上述错误,

我写:

import Constants from 'expo-constants';
Run Code Online (Sandbox Code Playgroud)

和:

const { version } = Constants.manifest;
Run Code Online (Sandbox Code Playgroud)