gpt4 book ai didi

react-native - 如何将组件中的 props 传递给 FlatList renderItem

转载 作者:行者123 更新时间:2023-12-04 04:15:15 25 4
gpt4 key购买 nike

我的组件中有一个函数作为 Prop ,我必须将此函数 Prop 传递给 FlastList 中 renderItem 中的另一个组件。怎么做?这是我的代码。

import React, { Component } from 'react';
import { View } from 'native-base';
import PropTypes from 'prop-types';
import { FlatList } from 'react-native';
import AddPlayers from '../AddPlayers/AddPlayers';
import League from '../League/League';
export default class InviteLeagues extends Component {
static propTypes = {
invitedLeagues: PropTypes.Array,
label: PropTypes.string.isRequired,
InvitedLeaguesList: PropTypes.Array,
onPress: PropTypes.func.isRequired
};

static defaultProps = {
InvitedLeaguesList: [
{ name: 'Howdy', createdBy: 'email1@gamil.com', status: 'Join' },
{ name: 'Lorem', createdBy: 'email@gmail.com', status: 'Join' }
]
};

renderLeague(item) {
return <League invitedLeague={item} />;
}

render() {
return (
<View {...this.props}>
<AddPlayers
label={this.props.label}
labelStyle={{ fontStyle: 'italic' }}
/>
<FlatList
numColumns={1}
data={this.props.InvitedLeaguesList}
renderItem={this.renderLeague}
/>
</View>
);
}
}

现在我必须通过 onPress (功能 Prop )到 League成分

我试过这样
 <FlatList
numColumns={1}
data={this.props.InvitedLeaguesList}
renderItem={this.renderLeague}
extraData={this.props}
/>

renderLeague(item) {
return <League invitedLeague={item} onPress={this.props.onPress} />;
}

最佳答案

您可以将 props 作为参数传递给呈现平面列表项的函数,如下所示:

<FlatList
numColumns={1}
data={this.props.InvitedLeaguesList}
renderItem={(item) => this.renderLeague(item, this.props)}
/>

您可以在 renderLeague 中使用此参数功能:
renderLeague({item}, props) {
...
}

props 变量包括 props 的所有参数,你可以使用 this.props在另一个地方。

关于react-native - 如何将组件中的 props 传递给 FlatList renderItem,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55823401/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com