2017-10-30 1 views
0

이미지에 체크 박스를 넣으 려합니다. 여기 현재 화면이 있습니다.<Image> (React Native)에서 체크 박스를 렌더링하는 방법

enter image description here

그것은 FlatList 간단합니다. 여기 FlatList

<TouchableWithoutFeedback 
     onPress={() => this._handleImagePress(item.id)}> 
     <Image 
     key={item.id} 
     source={{uri: item.outfit_img}} 
     style={styles.rowImage} 
     resizeMode="cover" 
     /> 
    </TouchableWithoutFeedback> 

에 대한 renderItem()입니다 제가 구현하려는 것은 내가 확인란을 선택 렌더링 <CheckBox on={true}> 구성 요소가

enter image description here

아래이 화면과 같습니다.

handleImagePress = (id) => { 
    if(_.includes(this.state.selectedIds, id)) { 
     let newSelectedIds = _.filter(this.state.selectedIds, (curObject) => { 
      return curObject !== id; 
     }); 
     this.setState({selectedIds : newSelectedIds}); 
     } else { 
     let newSelectedIds = [...this.state.selectedIds, id]; 
     this.setState({selectedIds : newSelectedIds}); 
     } 
} 
+0

나는이 문제를 한 시간 동안 봤다. ( –

답변

1

요청 당신은 당신의 renderItem()에서이 작업을 수행 할 필요가 : 여기 Checkbox

renderItem({item}) => { 
const isSelected = this.state.selectedIds.includes(item.id) 
return (
    <TouchableWithoutFeedback 
     onPress={() => this._handleImagePress(item.id)} 
    > 
     <Image 
     key={item.id} 
     source={{uri: item.outfit_img}} 
     style={styles.rowImage} 
     resizeMode="cover" 
     /> 
     { isSelected && <CheckBox on={true}> } 
    </TouchableWithoutFeedback> 
) 
} 

absolute 위치가 있어야합니다, 당신은 원하는 스타일을 제공 할 수 있습니다. 또한 this.state.selectedphotos 값의 extraData 지주를 Flatlist에 추가해야합니다.

+0

Oh 방금 편집 했음. –

+0

그래, 내가 대답해야한다고 생각했지만 예상대로 배열에 ID를 추가하고있다. 당신은 그것을 'selectedIds'라는 이름으로 –

+0

에 따라 편집했다. 귀하의'handleImagePress'. –

관련 문제