我正在研究精选明星的想法,但遇到了问题。
这是我的代码:
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>
);
}
}
我想当我们按下恒星以知道按下了哪个恒星时,我的恒星处于阵列中,而我不知道按下了哪个恒星。
最佳答案
通过点击回调传递星号。
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>
);
}
}