가로 목록보기가 있으며 행을 누르고 행 스타일을 변경하려고합니다. (선택된 행 : 스타일 행 변경, 선택되지 않은 행 : 기본 스타일로 변경). 나는 그것의 행에 touchable 하이라이트를 사용합니다. 그것을위한 어떤 제안? 나는 이미 약 3 일 동안 검색하려고합니다. 그러나 나는 아직도 그것을 잡지 못한다. 진급 감사드립니다.React-Native Listview, 행을 누르고 해당 행 스타일을 변경하십시오.
class MatchSchedule extends Component {
constructor(props) {
super(props);
const ds = new ListView.DataSource({
rowHasChanged: (r1, r2) => r1 !== r2,
});
this.state = {
dataSource: ds.cloneWithRows(this._getWeekList()),
selectedID: 'Week 3',
};
render() {
return (
<View style={styles.container}>
<View style={styles.weekContain}>
<ListView
showsHorizontalScrollIndicator={false}
horizontal={true}
dataSource={this.state.dataSource}
renderRow={this._renderRow.bind(this)}
>
</ListView>
</View>
</View>
);}
_renderRow(rowData, rowID) {
return (
<TouchableHighlight onPress={() => {
this._selectedWeek(rowData, rowID)
}
}
>
<View style={this.state.selectedID == rowData ? styles.weekRowSelected : styles.weekRow}>
<Text style={this.state.selectedID == rowData ? styles.weekTextSelected : styles.weekText}> {rowData} </Text>
</View>
</TouchableHighlight>
);
}
_selectedWeek(rowData, rowID) {
this.setState({
selectedID: rowData,
dataSource: this.state.dataSource.cloneWithRows(newDs)
});
}
}
나는 또한 listview를 다시 렌더링하려고 시도하지만 여전히 할 수 없습니다. 나는 새로운 반응 네이티브입니다.
'눌린'행 ID의 배열을 state에 설정하고 press에 추가합니다. 그런 다음 해당 배열에있는 행 색인을 기반으로 변경된 스타일로 목록보기를 다시 렌더링하십시오. https://facebook.github.io/react-native/docs/listview.html#renderrow'renderRow' 메소드에서 행 ID를 얻을 수 있습니다. – G0dsquad
다시 렌더링하는 것이 가장 좋은 방법입니다. 다시 렌더링을 가져올 수 있습니까? 죄송합니다. 새로운 반응 - 네이티브 @Godsquad –
@RishabhBhatia는 아래 설명 된 코드를 게시했습니다. – G0dsquad