开发者问题收集

未定义不是一个对象(评估‘_expo.default.Constants’)

2019-05-09
5259

我在 Constants 中的 const{manifest}=Expo.Constants 处收到错误,并显示错误“未定义不是对象”。我无法获取它。有人能帮助我消除该错误吗?

我试图在我的计算机上运行的 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')),
    };
}

Expected events to be displayed on my emulator from db.json file but I am getting error as Undefined.

3个回答

下面的代码对我有用:

而不是

import Expo from 'expo';

和(例如):

const { version } = Expo.Constants.manifest;

这给出了上述错误,

我写道:

import Constants from 'expo-constants';

和:

const { version } = Constants.manifest;
Yossi
2019-06-07

我遇到了同样的错误:

undefine is not an object (evaluating _expoLocation.default.reverseGeocodeAsync)

我通过导入更改解决了该问题。

之前:

import Location from "expo-location";

之后:

import * as Location from "expo-location";
Clément Prévost
2019-08-06

你可以试试这个代码。

import { Constants as Manifest  } from 'expo';

阅读如何使用它的详细 说明

hong developer
2019-05-09