2017-08-31 15 views
0

onViewableItemsChangedが呼び出されたときにrenderItemのコンポーネントをFlatListに操作しようとしています。react-native:onViewableItemsChangedからrenderItemに渡す方法をフラットリストにする

私のコードは次のようになります。

<FlatList 
    data={this.props.data.allPosts.nodes} 
    ListHeaderComponent={() => this.props.listHeader} 
    onViewableItemsChange={this.onViewableItemsChanged} 
    renderItem={({item}) => 
     <View style={{ marginBottom: 12 }}> 
      <Video lights={true} 
       ref={(ref) => this[`postRef_${item.key}`] = ref} 
      /> 
     </View> 
    }     
/> 


onViewableItemsChanged = ({viewableItems}) => { 
    viewableItems.forEach((item) => { 
     const { isViewable, key } = item; 

     if(isViewable) { 
      const ref = this[`swiperRef_${key}`]; 

      if(!ref) return console.log('Ref not found'); 
       console.log('ref', ref) 
       ref.paused = false 
     } 
    }); 
} 

私の問題は、参照はundefinedを返し続けるということです。それのまわりで何か?

+0

これはフォーマットが不適切であるが、 'onViewableItemsChanged'と' {this.onViewableItemsChanged} 'の間に '='がありませんかわかりません – Osman

+0

ありがとうthats bad formating – bz123

答えて

0

私はあなたが "参照" によって何を意味するかわかりませんが、あなたがconst ref = this[swiperRef_${key}];

を参照している場合は、

this.onViewableItemsChanged = this.onViewableItemsChanged.bind(this)

または

onViewableItemsChange={this.onViewableItemsChanged.bind(this}経由onViewableItemsChangedthisを拘束しましたか?