2017-04-13 2 views
3

アイテムテキストを更新するにはflatlistアイテムonpressフラットリストアイテムを更新するプレス

renderEntries({ item, index }) { 
    return(
     <TouchableHighlight onPress={()=> this.setState({value: this.state.value+1})> 
      <Text>{this.state.value}</Text> 
     </TouchableHighlight> 
    ) 
} 

は、私はこのエラーを取得:this.setStateは関数ではありません。

enter image description here

+0

エラーが示される私のために働いたソリューション以下同じ問題を抱えていました。 – shalonteoh

+0

'renderEntries'関数を呼び出す場所からコードを表示できますか? –

+0

{this.list = ref; }} keyExtractor = {(アイテム)=> item.entry.entryId} データ= {this.state.data} のRenderItem = {this.renderEntries} 水平= {偽} /> – shalonteoh

答えて

0

私は最近

import React, { Component } from 'react'; 
import { 
    AppRegistry, 
    StyleSheet, 
    SectionList, 
    Text, 
    NativeModules, 
    Button, 
    FlatList, 
    Switch, 
    View 
} from 'react-native'; 


export default class alarm extends Component { 

    state={ 
    data:[ 
     { name:'First' , isOn:true }, 
     { name:'Second', isOn:true }, 
     { name:'Third' , isOn:true }, 
     { name:'Fourth' , isOn:false } 
    ], 
    selected:true, 
    } 

    _keyExtractor = (item, index) => item.name; 

    _onValueChanged = (item,value) => 
    {  
     var items = this.state.data; 
     var index = items.indexOf(item); 
     items[index].isOn = value; 
     this.setState({data:items}); 
     this.setState({selected:!this.state.selected}); 
    }; 

    _renderItem = ({item}) => 
    ( 
    <View> 
     <Text>{ item.name }</Text> 
     <Switch value={item.isOn} 
     onValueChange={(value) => 
     {   
     this._onValueChanged(item,value); 
     }}/> 
    </View> 
) 

    render() { 
    return (

     <FlatList 
      data={this.state.data} 
      renderItem={this._renderItem} 
      extraData={this.state.selected} // This is the Key you need to privde extra data parmater 
      keyExtractor={this._keyExtractor} 
     /> 

    ); 
    } 
} 
AppRegistry.registerComponent('alarm',() => alarm); 
関連する問題