我正在创建 React 本机应用程序,我在 FlatList 上的打开弹出模式框中遇到问题

Posted

技术标签:

【中文标题】我正在创建 React 本机应用程序,我在 FlatList 上的打开弹出模式框中遇到问题【英文标题】:I am creating React native application and i face the issue in open pop-up modal box on FlatList 【发布时间】:2021-08-28 03:45:51 【问题描述】:

我正在创建 React Native 应用程序,我有视频数据,我想与其他人分享我的视频数据信息, 我想通过单击该图标打开一个弹出模式框,其中包含此特定视频信息

<FlatList
    data=this.state.videoData
    renderItem=this.renderItemOffer
    keyExtractor=(it, index) => String(index)
    showsHorizontalScrollIndicator=false
/>

我正在使用平面列表来呈现数据

_onPressItem = (item) => 
    this._showModal(item);
;
_showModal = (selectedItem) => this.setState( isShareModal: true, selectedItem )

renderItemOffer = ( item ) => (
    <>
        <TouchableOpacity style= borderRadius: 25 
            onPress=() => this.props.navigation.navigate("VideoPlay")
        >
            <View style= paddingHorizontal: 20 >
                "Video Thumnail and video data"
              <TouchableOpacity
                    onPress=() => this._onPressItem(item) >
                    <Icon name='more-vertical' size=30 color=colors.black />
                </TouchableOpacity>
            </View>

        </TouchableOpacity>
        <Modal
            visible=(this.state.isShareModal)
            selectedItem=this.state.selectedItem>
            <View style=styles.modalView>
                <TouchableOpacity onPress=() => this.shareMessage(item) style= flexDirection: "row" >
                    <Text style= fontSize: 20 >Share</Text>
                </TouchableOpacity>
            </View>
        </Modal>
    </>
)

【问题讨论】:

嘿删除这些删除模态标签内的这些圆括号可能是这个问题 visible=this.state.isShareModal 【参考方案1】:

您只需声明一次 Modal,将其移出您的项目, 类似:

<>
<FlatList
    data=this.state.videoData
    renderItem=this.renderItemOffer
    keyExtractor=(it, index) => String(index)
    showsHorizontalScrollIndicator=false
/>
<Modal
            visible=(this.state.isShareModal)
            selectedItem=this.state.selectedItem>
            <View style=styles.modalView>
                <TouchableOpacity onPress=() => this.shareMessage(this.state.selectedItem) style= flexDirection: "row" >
                    <Text style= fontSize: 20 >Share</Text>
                </TouchableOpacity>
            </View>
</Modal>
</>

【讨论】:

以上是关于我正在创建 React 本机应用程序,我在 FlatList 上的打开弹出模式框中遇到问题的主要内容,如果未能解决你的问题,请参考以下文章

React本机init方法不在IOS中构建应用程序

如何覆盖 React 本机 web 预定义的 css

不变违规:本机模块不能为空。 React Native Firebase 应用程序

反应本机导航器

如何更新本机应用程序的版本号

我如何使用本机 swift 代码中的 react 本机 RCNAsyncStorage 模块