我正在使用shareSingle()从https://github.com/EstebanFuentealba/react-native-share获得我的应用程序中的facebook共享功能。
我在文档后面编写了下面的代码,但是它抛出:
可能未处理的承诺拒绝错误。TypeError:未定义不是对象
未定义的exp不是一个对象(计算'_reactNative.NativeModules.RNShare.shareSingle') )。
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
{
"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"
}
}发布于 2018-03-29 04:57:06
我认为您需要将RNShare.xcodeproj添加到项目的库中,然后转到通用->链接框架和库,添加libRNShare.a。它解决了我的问题。
发布于 2018-03-29 06:18:01
React-Native有自己的share组件。直接Import{Share} from "react-native" 反应-土生土长
import { Platform, Linking, Share } from "react-native";
Share.share({
"title",
message: "Your Message"
});发布于 2022-05-24 06:06:30
我无法让Share.open()工作,但我确实设法让Share.share()开始工作。
https://stackoverflow.com/questions/49082623
复制相似问题