我试图在按下按钮时使用异步功能,我需要按下按钮才能共享数据。 onPress代码上的按钮如下所示。
<TouchableOpacity
disabled={buttonDisabled}
onPress={Share}
style={[
styles.btTouchable,
buttonDisabled && styles.buttonDisabled,
]}>
</TouchableOpacity>
我要共享的功能如下:
async function Share() {
try {
let locationData = await new LocationData().getLocationData();
const jsonData = base64.encode(JSON.stringify(locationData));
const title = '';
const filename = '';
const message = '';
const url = 'data:application/json;base64,' + jsonData;
const options = Platform.select({
ios: {
activityItemSources: [
{
placeholderItem: { type: 'url', content: url },
item: {
default: { type: 'url', content: url },
},
subject: {
default: title,
},
linkMetadata: { originalUrl: url, url, title },
},
{
placeholderItem: { type: 'text', content: message },
item: {
default: { type: 'text', content: message },
message: null, // Specify no text to share via Messages app.
},
},
],
},
default: {
title,
subject: title,
url: url,
message: message,
filename: filename,
},
});
Share.open(options)
.then(res => {
console.log(res);
})
.catch(err => {
console.log(err.message, err.code);
});
} catch (error) {
console.log(error.message);
}
}
如何在按下按钮时使异步功能起作用?非常感谢
答案 0 :(得分:1)
好吧,您可以尝试通过以下方式使用该功能:
Share = async () => {
.....
.....
}
并以这种方式调用函数:
<TouchableOpacity
disabled={buttonDisabled}
onPress={this.Share}
style={[
styles.btTouchable,
buttonDisabled && styles.buttonDisabled,
]}>
</TouchableOpacity>
[编辑]
要将其与挂钩一起使用,您可以阅读本文:React Hooks Basics— Building a React Native App with React Hooks