首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >反应-本地共享承诺拒绝错误

反应-本地共享承诺拒绝错误
EN

Stack Overflow用户
提问于 2018-03-03 09:20:38
回答 3查看 3.2K关注 0票数 6

我正在使用shareSingle()https://github.com/EstebanFuentealba/react-native-share获得我的应用程序中的facebook共享功能。

我在文档后面编写了下面的代码,但是它抛出:

可能未处理的承诺拒绝错误。TypeError:未定义不是对象

未定义的exp不是一个对象(计算'_reactNative.NativeModules.RNShare.shareSingle') )。

代码语言:javascript
复制
import React, {Component} from 'react';
import {StyleSheet, View} from 'react-native';
import Share, {ShareSheet, Button} from 'react-native-share';

export default class PreviewImage extends Component {
    constructor(props) {
        super(props);
        this.state = {
            visible: false
        }
    }

    onCancel = () => {
        this.setState({visible:false});
    }

    onOpen = () => {
        this.setState({visible:true});
    }

    render() {
        let shareOptions = {
            title: "React Native",
            message: "Hola mundo",
            url: "http://facebook.github.io/react-native/"
        };

        return (
            <View style={styles.container}>
                <View style={styles.shareImageButton}>
                    <Button
                        buttonStyle={{
                            backgroundColor: "rgba(92, 99,216, 1)",
                            borderColor: "transparent",
                            borderWidth: 0,
                            borderRadius: 5
                        }}
                        onPress={() => this.onOpen()}
                        textStyle={{textAlign: 'center'}}
                        title={'Share'}/>
                </View>
                <ShareSheet
                    visible={this.state.visible}
                    onCancel={this.onCancel}
                >
                    <Button iconSrc={{ uri: FACEBOOK_ICON }}
                            onPress={
                                () => {
                                    this.onCancel();
                                    setTimeout(() => {
                                        Share.shareSingle(Object.assign({}, shareOptions, {"social": "facebook"})).catch(err => console.log(err));
                                    }, 300);
                                }
                            }
                    >
                        Facebook
                    </Button>
                </ShareSheet>
            </View>
        )
    }
}

//  facebook icon
const FACEBOOK_ICON = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAMAAAANIilAAAAAYFBMVEUAAAAAQIAAWpwAX5kAX5gAX5gAX5gAXJwAXpgAWZ8AX5gAXaIAX5gAXpkAVaoAX5gAXJsAX5gAX5gAYJkAYJkAXpoAX5gAX5gAX5kAXpcAX5kAX5gAX5gAX5YAXpoAYJijtTrqAAAAIHRSTlMABFis4vv/JL0o4QvSegbnQPx8UHWwj4OUgo7Px061qCrcMv8AAAB0SURBVEjH7dK3DoAwDEVRqum9BwL//5dIscQEEjFiCPhubziTbVkc98dsx/V8UGnbIIQjXRvFQMZJCnScAR3nxQNcIqrqRqWHW8Qd6cY94oGER8STMVioZsQLLnEXw1mMr5OqFdGGS378wxgzZvwO5jiz2wFnjxABOufdfQAAAABJRU5ErkJggg==";

const styles = StyleSheet.create({
    container: {
        flex: 1,
    },
    shareImageButton: {
        flex: 1,
        justifyContent: 'center',
    }
});

这里的线索很受欢迎。

请注意,Share.open()对我来说非常好。

我的package.json

代码语言:javascript
复制
{
  "name": "TrashCan",
  "version": "0.1.0",
  "private": true,
  "devDependencies": {
    "react-native-scripts": "1.11.1",
    "jest-expo": "25.0.0",
    "react-test-renderer": "16.2.0"
  },
  "main": "./node_modules/react-native-scripts/build/bin/crna-entry.js",
  "scripts": {
    "start": "react-native-scripts start",
    "eject": "react-native-scripts eject",
    "android": "react-native-scripts android",
    "ios": "react-native-scripts ios",
    "test": "node node_modules/jest/bin/jest.js"
  },
  "jest": {
    "preset": "jest-expo"
  },
  "dependencies": {
    "axios": "^0.18.0",
    "expo": "^25.0.0",
    "react": "16.2.0",
    "react-native": "0.52.0",
    "react-native-elements": "^0.19.0",
    "react-native-share": "^1.0.26",
    "react-navigation": "^1.1.2",
    "react-redux": "^5.0.7",
    "redux": "^3.7.2",
    "redux-thunk": "^2.2.0",
    "react-native-animate-number": "^0.1.2"
  }
}
EN

回答 3

Stack Overflow用户

发布于 2018-03-29 04:57:06

我认为您需要将RNShare.xcodeproj添加到项目的库中,然后转到通用->链接框架和库,添加libRNShare.a。它解决了我的问题。

票数 1
EN

Stack Overflow用户

发布于 2018-03-29 06:18:01

React-Native有自己的share组件。直接Import{Share} from "react-native" 反应-土生土长

代码语言:javascript
复制
import { Platform, Linking, Share } from "react-native";
 Share.share({
      "title",
      message: "Your Message"
 });
票数 0
EN

Stack Overflow用户

发布于 2022-05-24 06:06:30

我无法让Share.open()工作,但我确实设法让Share.share()开始工作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49082623

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档