2 回答

TA贡献1786条经验 获得超13个赞
在这一行中onStarPress = {(starIndex) => {this.onStarPress(starIndex)}},第一个starIndex是事件处理对象。onStarPress接收对象也是如此。
有两种方法可以解决此问题:
onStarPress = (e,index) => {
console.warn('e = ' + e);
console.warn('index = ' + index);
this.setState({
selectedStar: index
});
}
renderStars = () => (
this.starsArray.map((starIndex, i) => (
<Star
key={i}
color={this.defineStarColor(starIndex)}
onStarPress={(e) => { this.onStarPress(e,starIndex) }}
/>
))
)
其他方式是:
onStarPress = (index) => (e) => {
console.warn('e = ' + e);
console.warn('index = ' + index);
this.setState({
selectedStar: index
});
}
renderStars = () => (
this.starsArray.map((starIndex, i) => (
<Star
key={i}
color={this.defineStarColor(starIndex)}
onStarPress={this.onStarPress(starIndex)}
/>
))
)
添加回答
举报