2017-10-20 3 views
0

ich https://facebook.github.io/react-native/releases/next/docs/flatlist.html folgte ein FlatList und auch this.state-extraData aber immer noch übergeben zu machen, sobald ich einen Artikel löschen, wird das Element nach wie vor angezeigt. Ich habe auch this.state geloggt, um sicherzustellen, dass das Element gelöscht wird und es tatsächlich tat. Mein Code ist unten:Extradata auf FlatList vorbei funktioniert nicht

class DescriptionItem extends React.PureComponent { 

    render() { 
    return (
     <TouchableOpacity 
     style={this.props.containerStyle} 
     onPress={(event) => {this.props.onPress(this.props.value)}}> 
     <Text style={this.props.style}>{this.props.value}</Text> 
     </TouchableOpacity> 
    ) 
    } 
} 


export default class CardWorkDescriptionsList extends React.PureComponent { 
    constructor(props) { 
    super(props); 
    this.state = { 
     loading: false, 
     data: [], 
     error: null, 
     refreshing: false, 
    }; 
    } 

    _notifyItemSelected(text) { 
    if(this.props.onItemSelected) { 
     this.props.onItemSelected(text) 
    } 
    } 

    _onItemSelected = (selectedItem) => { 
    var array = this.state.data; 
    var index = array.indexOf(selectedItem) 
    array.splice(index, 1); 
    console.log(array) 
    this.setState({data: array }); 
    console.log("yeah",this.state.data) 
    this._notifyItemSelected(selectedItem); 
    } 

    makeRemoteRequest =() => { 
    //TODO: fetch data 
    this.setState({data: descriptionsFake}) 
    } 


    componentDidMount() { 
    this.makeRemoteRequest(); 
    } 

    render() { 
    return (
     <View style={styles.cardLight}> 
     <FlatList 
     data={this.state.data} 
     extraData={this.state} 
     renderItem={(item) => (
      <DescriptionItem 
      containerStyle={styles.itemContainer} 
      style={styles.content} 
      value={item.item} 
      onPress={(selectedItem)=>this._onItemSelected(selectedItem)}/> 
     )} 
     keyExtractor={item => item.substring(0,20)} 
     /> 
     </View> 
    ); 
    } 
} 

Antwort

1

Versuchen React.Component statt PureComponent

erstreckt
Verwandte Themen