【发布时间】:2019-12-13 09:14:13
【问题描述】:
我有一条消息在运行我的应用程序时无法删除
以下 API 已移至单独的包并导入它们 不推荐使用“expo”包中的:常量。
使用以下方法将这些包的正确版本添加到您的项目中:
expo install expo-constants如果“安装”未被识别为 expo 命令,请更新您的 expo-cli 安装。
更改您的导入,以便它们使用特定的包而不是 “世博”包:
import { Constants } from 'expo' -> import Constants from 'expo-constants'
我已按照指示安装了必要的软件包,但尝试在 expo 中使用相机软件包时仍然出现此错误
下面是我的相机组件代码
Camera.js
import React, { Component } from 'react';
import { View, StyleSheet, TouchableOpacity, Text,
Alert, Modal, } from 'react-native';
import * as Permissions from 'expo-permissions';
import { Camera } from 'expo-camera';
import { Constants } from 'expo-constants';
import { Entypo, MaterialIcons, MaterialCommunityIcons,
SimpleLineIcons } from '@expo/vector-icons';
import { connect } from 'react-redux';
class Camera extends Component {
static navigationOptions = {
header: null
}
constructor(props) {
super(props);
this.state = {
hasCameraPermission: null,
type: Camera.Constants.Type.back,
picture: null
};
}
async componentDidMount() {
const { status } = await Permissions.askAsync(Permissions.CAMERA);
this.setState({ hasCameraPermission: status === 'granted' });
}
takePicture = async () => {
if (this.camera) {
console.log('');
const photo = await this.camera.takePictureAsync({ base64: true });
this.setState({
foo: Math.random()
});
const formData = new FormData();
formData.append('image', photo.base64);
formData.append('type', 'base64');
this.setState({
picture: photo.uri,
isCameraVisible: false
});
}
};
openCamera = () => {
const { hasCameraPermission } = this.state;
if (!hasCameraPermission) {
Alert.alert('Error', 'No access to camera');
} else {
this.setState({ isCameraVisible: true });
}
};
closeCamera = () => {
this.setState({
isCameraVisible: false
});
};
flipCamera = () => {
this.setState({
type: this.state.type === Camera.Constants.Type.back
? Camera.Constants.Type.front
: Camera.Constants.Type.back,
});
};
}
【问题讨论】:
-
您是否尝试过以下方式导入常量
import Constants from 'expo-constants';?因为在您的代码中,您正在执行以下操作import { Constants } from 'expo-constants'; -
您的组件也称为
Camera,您是从expo-camera导入的。这可能会引起混乱,也许您应该将组件更改为class MyCamera extends Component { ... } -
谢谢,我输入错了
标签: reactjs react-native expo