Require() в реакции на нативный

Я работаю над идеей выбора звезды и застрял в проблеме. Вот мой код:

export default class Star extends Component {
    render() {
        var starArray = [];
        var i;
        for (i = 0; i < 4; ++i) {
            if (i < this.props.value) {
                imageSource = this.props.fullStar;
            } else {
                imageSource = this.props.emptyStar;
            }
            starArray.push(
            <View key={i}>
                <TouchableHighlight onPress={() => console.log("etoile : "+this.key)}>
                    <Image source={imageSource} style={{width: 25, height: 25}}/>
                </TouchableHighlight>
            </View>
              );
        }
        return (
            <View style={Styles.container}>
                {starArray}
            </View>
        );
    }
}

Я хотел бы, чтобы мы нажимали на звезду, чтобы знать, какая звезда нажата, мои звезды находятся в массиве, и я не знаю, на какую звезду я нажал.

это рендеринг

1 ответ

Решение

Передайте звездный номер с обратным вызовом.

export default class Star extends Component {
    handleClick(i){
        console.log("star number " + i);
    }
    render() {
        var starArray = [];
        var i;
        for (i = 0; i < 4; ++i) {
            if (i < this.props.value) {
                imageSource = this.props.fullStar;
            } else {
                imageSource = this.props.emptyStar;
            }
            starArray.push(
            <View key={i}>
                <TouchableHighlight onPress={this.handleClick.bind(this,i)}>
                    <Image source={imageSource} style={{width: 25, height: 25}}/>
                </TouchableHighlight>
            </View>
              );
        }
        return (
            <View style={Styles.container}>
                {starArray}
            </View>
        );
    }
}
Другие вопросы по тегам