undefined 不是对象(评估'_expo.default.Constants')

undefined is not an object ( evaluating '_expo.default.Constants')

我想调试我的 mobile/simulator 并将其动态指向 API。

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


export function getEvents(){
    return fetch('http://${api}/events')
    .then(response => response.json())
    .then(events => events.map(e =>({ ...e, date: new Date(e.date)})));
}

我收到以下错误:

undefined is not an object(evaluating'_expo.default.Constants')

带上展会的完整模块:

import * as Expo from 'expo'

我和 "sdkVersion": "35.0.0" 一起工作。似乎世博会改变了它的API。他们将一些部件提取并移动到单独的包中。 现在对于这种情况,您需要安装一个单独的依赖项:

npm i --save expo-constants

然后为您的组件独立导入 FileSystem 对象:

import Constants from 'expo-constants';

当您在 Snack.expo.io 工作时,如果出现此错误,请使用代码:

import Constants from 'expo-constants';

这对我有用。