2016-04-25 88 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