我有ListView组件上列出的本机(大约3000个按钮)上的按钮列表。
如何在单击按钮时禁用按钮编号365?
答案 0 :(得分:0)
您在此处未提及关键点,您打算如何禁用按钮?是否要禁用按钮以响应某些操作,或者您是否要默认禁用按钮?请明确说明。所以我在这里假设一些事情 -
TouchableHighlight
或
TouchableWithoutFeedback
智能地使用rowId
来禁用确切的项目。填充一系列已撤消的ID,并相应地禁用该项。
您的渲染方法呈现ListView
render: function(){
return(
<ListView
dataSource={this.state.dataSource}
renderRow={(rowData, sectionID, rowID) => renderItem.bind(this, rowId)}
style={styles.listView}
/>
);
},
renderItem: function(id){
return <Item id={id} enabled={this.state.isEnabled} data={{name: 'foo', details: 'bar'}} />
}
项目组件将拥有自己的功能,状态和道具。
render: function(){
return(
<TouchableHighlight underlayColor={'#939393'} onPress={this.onPressItem}>
<View style={styles.container}>
<Text>{this.props.data.name}</Text>
<Text>{this.props.data.details}</Text>
</View>
</TouchableHighlight>
)
},
onPressItem: function(){
if(this.props.enabled){
//do something
}
else{
//do nothing
}
}