Lok*_*wal 5 javascript reactjs react-native
我正在使用https://github.com/EstebanFuentealba/react-native-share中的 shareSingle()来获取我的应用程序中的facebook共享功能.
我按照文档编写了下面的代码,但它抛出了"可能未处理的Promise Rejection错误.TypeError:undefined不是对象"
[exp] undefined不是对象(评估'_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',
}
});
Run Code Online (Sandbox Code Playgroud)
这里的潜在客户表示赞赏.
请注意,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"
}
}
Run Code Online (Sandbox Code Playgroud)
小智 1
我认为您需要将RNShare.xcodeproj添加到项目的库中,然后转到General->Linked Frameworks and Libraries,添加libRNShare.a。它解决了我的问题。
| 归档时间: |
|
| 查看次数: |
1088 次 |
| 最近记录: |