React Native - 在博览会弹出后安装博览会

Posted

技术标签:

【中文标题】React Native - 在博览会弹出后安装博览会【英文标题】:React Native - Reinstall expo after expo eject 【发布时间】:2019-07-24 20:36:22 【问题描述】:

我在使用 react-native-image-picker 库时遇到问题。因此,我尝试将 RCTCameraRoll 链接到 Xcode 库中。但是,要使用 Xcode 打开我的项目,我必须运行 expo eject

现在,我该如何运行我的项目?运行命令时:expo start 它返回:

Property 'expo' in app.json is not an object. Please make sure app.json includes a managed Expo app config like this: "expo":"name":"My app","slug":"my-app","sdkVersion":"..."
No Expo configuration found. Are you sure this is a project directory?

【问题讨论】:

【参考方案1】:

如果你想使用expo,你可以使用ImagePicker,但你不必将Expo做成一个独立的应用程序。 p>

你可以运行expo install expo-image-picker

用法

import * as React from 'react';
import  Button, Image, View  from 'react-native';
import * as ImagePicker from 'expo-image-picker';
import Constants from 'expo-constants';
import * as Permissions from 'expo-permissions';

export default class ImagePickerExample extends React.Component 
  state = 
    image: null,
  ;

  render() 
    let  image  = this.state;

    return (
      <View style= flex: 1, alignItems: 'center', justifyContent: 'center' >
        <Button
          title="Pick an image from camera roll"
          onPress=this._pickImage
        />
        image &&
          <Image source= uri: image  style= width: 200, height: 200  />
      </View>
    );
  

  componentDidMount() 
    this.getPermissionAsync();
  

  getPermissionAsync = async () => 
    if (Constants.platform.ios) 
      const  status  = await Permissions.askAsync(Permissions.CAMERA_ROLL);
      if (status !== 'granted') 
        alert('Sorry, we need camera roll permissions to make this work!');
      
    
  

  _pickImage = async () => 
    let result = await ImagePicker.launchImageLibraryAsync(
      mediaTypes: ImagePicker.MediaTypeOptions.All,
      allowsEditing: true,
      aspect: [4, 3],
    );

    console.log(result);

    if (!result.cancelled) 
      this.setState( image: result.uri );
    
  ;

【讨论】:

我收到警告:“[未处理的承诺拒绝:错误:缺少相机胶卷权限。]”使用 iOS 模拟器

以上是关于React Native - 在博览会弹出后安装博览会的主要内容,如果未能解决你的问题,请参考以下文章

从 create react native 弹出后在 android studio 中运行 react native 项目的步骤

反应本机博览会弹出后的问题:“RCTAsyncLocalStorage”没有可见的@interface声明选择器“initWithStorageDirectory:”

在博览会上的“npm runeject”之后无法运行 react-native 应用程序

弹出后我可以在 Windows 中运行 ios 应用程序吗?

React-Native 弹出软键盘时,软键盘和页面下边栏多出一截?

无法在博览会上调试/测试我的 react-native 应用程序