2016-04-25 24 views
0

リストビューコンポーネントに表示されている反応ネイティブ(約3000個のボタン)のボタンのリストがあります。反応ネイティブのクリックで特定のボタンを無効にする

ボタンクリックでボタン番号365を無効にするにはどうすればよいですか?

+0

何らかのコードを入力する必要があります。あなたが私たちを助ける手伝いをしないと誰も助けることができません。 – Chris

+0

このボタンまたは他のボタンをクリックしたときにボタン番号365を無効にするかどうかは不明ですか? – primoz

+0

ボタン365をクリックすると、自分自身を無効にする必要があります – AceJordan

答えて

0

ここで重要な点について言及していないが、どのようにボタンを無効にする予定ですか?何らかのアクションに応答してボタンを無効にするか、デフォルトでボタンを無効にしますか?ご指定ください。だから私はあなたには、いくつかのアクション時にボタンを無効にしたいhere-

  1. いくつかのことを仮定している、あなたは状態を維持 する必要があります。
  2. あなたはインテリジェントに正確な項目を無効にするには、TouchableHighlightまたは TouchableWithoutFeedback

使用rowIdを使用していました。無効化されたIDの配列を設定し、それに応じてその項目を無効にします。

あなたのrenderメソッドはレンダリングの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

私はよく精緻化していないのですが、私の意見があります。基本的に私の問題は、反応ネイティブで行を再描画しています。たとえば、私は好きなボタンを持っている、私はそれを押すとボタンのように無効にしたいと思います。どのように反応するネイティブでそれを行うのですか? – AceJordan