如何在 React Native share 中应用动态数据



对于我的食谱应用程序,我希望用户能够与他们的朋友分享食谱。为此,我使用的是官方的 React Native 共享函数。我正在尝试将道具传递给消息和标题,但没有任何成功。这是我用于共享的代码。

onShare = async () => {
// const result = await
const { caption } = this.props.section;
Share.share(
{
message: caption,
title: "{section.caption}"
},
{
excludedActivityTypes: [
// 'com.apple.UIKit.activity.PostToWeibo',
// 'com.apple.UIKit.activity.Print',
// 'com.apple.UIKit.activity.CopyToPasteboard',
// 'com.apple.UIKit.activity.AssignToContact',
// 'com.apple.UIKit.activity.SaveToCameraRoll',
// 'com.apple.UIKit.activity.AddToReadingList',
// 'com.apple.UIKit.activity.PostToFlickr',
// 'com.apple.UIKit.activity.PostToVimeo',
// 'com.apple.UIKit.activity.PostToTencentWeibo',
"com.apple.UIKit.activity.AirDrop"
// 'com.apple.UIKit.activity.OpenInIBooks',
// 'com.apple.UIKit.activity.MarkupAsPDF',
// 'com.apple.reminders.RemindersEditorExtension',
// 'com.apple.mobilenotes.SharingExtension',
// 'com.apple.mobileslideshow.StreamShareService',
// 'com.linkedin.LinkedIn.ShareExtension',
// 'pinterest.ShareExtension',
// 'com.google.GooglePlus.ShareExtension',
// 'com.tumblr.tumblr.Share-With-Tumblr',
// 'net.whatsapp.WhatsApp.ShareExtension', //WhatsApp
]
}
);

};

将数据加载到此页面的方式是通过 {section.XXX}。例:

<Caption style={styles.Caption}>{section.caption}</Caption>

这就是我触发"onShare"功能的方式。

<Button title="Share recipe" onPress={this.onShare} />

我希望有人能帮助我应对这个挑战。提前感谢!!

我看到你的代码有两个问题,第一个是字符串插值,这是不必要的和错误执行的,第二个是你引用了一个不存在的道具。您在评论中说this.props.section是未定义的,那是因为数据似乎是通过特殊的children道具传递的。

onShare = () => {
const { children } = this.props;
if (typeof children !== "string") {
return;
}
Share.share({
message: children,
title: children
});
}

最新更新