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

时间:2019-05-01 03:37:48

标签: react-native expo manifest.json

我想在移动设备/模拟器上进行调试并将其动态指向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)})));
}

我遇到以下错误:

  

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

3 个答案:

答案 0 :(得分:7)

我与"sdkVersion": "35.0.0"合作。看来Expo改变了它的API。他们提取了一些零件并将其移至单独的包装中。 现在,在这种情况下,您需要安装一个单独的依赖项:

npm i --save expo-constants

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

import Constants from 'expo-constants';

答案 1 :(得分:1)

带来博览会的完整模块。

import * as Expo from ‘expo'

答案 2 :(得分:0)

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

import Constants from 'expo-constants';

这对我有用。