コンポーネントに小道具としての関数があり、この関数の小道具を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: '[email protected]', status: 'Join' },
{ name: 'Lorem', createdBy: '[email protected]', 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
(Function 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} />;
}
callBack
関数を作成しようとしていると思います。もしそうなら、次のようにしてください。
renderLeague(item) {
return <League invitedLeague={item} onPress={this._callBack.bind(this)} />;
}
//callback function
_callBack(data) {
// your code here...
}
コンポーネントからLeague
次のような関数を呼び出し、
this.props.onPress(datas);