2016-04-25 55 views
0

特定的按钮我有ListView组件上列出的反应本机(大约3000个按钮)上的按钮列表。禁用点击反应原生

如何禁用单击按钮上的按钮号码365?

+0

您必须提供某种代码。如果你不帮助我们帮助你,任何人都无法协助。 – Chris

+0

当您点击此按钮或任何其他按钮时,是否想要禁用按钮号码365尚不清楚? – primoz

+0

当我点击按钮365,它应该禁用自己 – AceJordan

回答

0

你还没有在这里提到一个关键点,你打算如何禁用一个按钮?您是否想要禁用某个按钮以响应某些操作,或者您是否想要默认禁用某个按钮?请明确说明。所以我在这里假设几件事情 -

  1. 你想禁用一些按钮后,你将不得不 保持状态。
  2. 您已经使用TouchableHighlightTouchableWithoutFeedback

使用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 
    } 
} 
+0

我很抱歉没有详细阐述,但你明白了我的观点。基本上我的问题是在react-native中重新渲染一行。例如,我有一个像按钮,当我按下按钮时,我想禁用按钮。你如何做到这一点与原生反应? – AceJordan