2017-07-18 57 views
1

我正嘗試爲嵌套在React Native FlatList中的圖像建立一個按下處理程序。我已經驗證該函數是通過道具傳遞的,通過直接在組件內調用函數並且工作正常。以下是一個簡化的測試案例。我也嘗試在圖像上設置onPress,結果相同。React Native FlatList onPress for child

const PostList = ({posts, onActLike, currentUser}) => { 
    return (
    <FlatList 
     data={ posts } 
     keyExtractor={ (item) => item.id } 
     renderItem={ ({item}) => { 
     return (
      <View> 
      <Image 
       source={ {uri: item.media.url} } 
       resizeMode="cover" 
      /> 
      <View> 
       <View 
       onPress={ (item) => { 
        onActLike(item); 
       } } 
       > 
       { 
        currentUser.likedMedia.indexOf(item.id) > -1 && 
        <Image 
         source={ require('../assets/images/like_filled.png') } 
         style={ {width: 20, height: 17} } 
         resizeMode='contain' 
        /> 
       } 
       { 
        currentUser.likedMedia.indexOf(item.id) === -1 && 
        <Image 
         source={ require('../assets/images/like_unfilled.png') } 
         style={ {width: 20, height: 17} } 
         resizeMode='contain' 
        /> 
       } 
       </View> 
      </View> 
      </View> 
     ) 
     } } 
    /> 
) 
} 

回答

6

View不接受onPress功能也不Image。您需要將視圖包裹在觸摸中(TouchableOpacity,TouchableHighlight等)