Tôi đang sử dụng một ListView
như một chọn, tất cả mọi thứ đang làm việc nhưng tôi không thể thay đổi trạng thái hình ảnh của phần tử của danh sách:Làm thế nào để thay đổi một ListView mục như đánh dấu Trong Phản ứng-Native
this.state = {
dataSource: dataSource.cloneWithRows([
{
provincia:"Bocas del Toro",
capital: "Bocas del Toro",
selected:false,
},
{
provincia:"Coclé",
capital: "Penonomé",
selected:false,
},
...
tôi thay đổi dữ liệu trực tiếp onPress như thế này:
rowPressed(rowData) {
rowData.selected = true;
this.props.onAreaSelect(rowData);
}
Và tôi cố gắng thay đổi quan điểm như thế này:
<TouchableHighlight onPress={() => this.rowPressed(rowData)}
underlayColor='#eeeeee' >
<View>
<View style={[styles.rowContainer, this.state.selected ? styles.selected : styles.unselected ]}>
<View style={styles.textContainer}>
<Text style={styles.title}
numberOfLines={1}>{rowData.provincia}</Text>
<Text style={styles.description}
numberOfLines={1}>Capital: {rowData.capital}</Text>
</View>
</View>
<View style={styles.separator} />
</View>
</TouchableHighlight>
Nơi styles.selected
và styles.unselected
chỉ là 2 kiểu được xác định khác nhau.
trong onPress, tại sao chúng ta phải sử dụng 'onPress = {() => this.rowPressed (rowData)}'? Trong các khung nhìn khác, nơi 'TouchableHighlight' không có trong ListView, tôi chỉ có thể sử dụng' onPress = {this.rowPressed (rowData)} ', nhưng tại sao ở đây tôi phải bổ sung thêm'() => '? –