【发布时间】:2017-02-25 02:15:54
【问题描述】:
当“检查”图标被按下时,我希望它的颜色从默认的红色变为绿色。就我而言,虽然我有另一个 onpress 功能,但我使用了这个条件颜色语句
<Icon name="check" size={20} color={this.state.isCompleted ? '#1DA664' : '#DE5347'} onPress={() => this.isCompleted(rowData)} isCompleted={this.state.isCompleted}/>
我将此函数称为onpress
isCompleted(rowData){
if (this.state.status != 'new'){
this.itemsRef.child(rowData.id).update({
status: 'completed'
});
this.setState({
isCompleted: true
})
}
}
当按下列表视图中的一个图标时,图标会改变颜色,但每次颜色改变都是最后一项的图标。
如图,
当我按下项目“煮午餐”时,它应该是煮午餐的图标变成绿色。相反,最后一项“你好”中的图标发生了变化。完全不知道做错了什么。感谢有人指导我。
提前致谢。
【问题讨论】:
-
包含图标的组件是否在一个单独的组件中,该组件已明确地将 isCompleted() 事件处理程序绑定到自身?另外,假设父组件使用 [some array].map() 来呈现任务,您是否为每个子组件分配了唯一的 ID?
-
嗨@androo,isCompleted在onpress时绑定到图标元素,所以如果isCompleted我做了它,那个图标颜色会改变。有什么方法可以在 isCompleted 函数中设置颜色吗?
标签: android reactjs react-native