(Я знаю, что есть сайты для обмена реактивными примерами, но я не смог найти их через google; «отредактировать собственный код общего доступа» просто появляется код для кнопки совместного доступа, то же самое для «примера» - что такое хороший сайт для использования?)Почему этот ListView показывает только 10 элементов?
У меня есть listview (спасибо answer, кредит @ colin-ramsay). Я хотел бы сделать некоторые элементы внутри каждого списка и заставить их выравнивать внутри своих контейнеров (флажок и метка в той же строке). Но я не могу зайти так далеко, потому что не могу понять, почему этот массив из 20 предметов показывает только 10 предметов.
Предупреждение показывает 20 предметов (0-19), когда оно срабатывает.
Код:
import React, {Component} from 'react';
import {View, Text, StyleSheet, ListView} from 'react-native';
var styles = StyleSheet.create({
container:{
marginTop:65,
margin:10, backgroundColor:"#DDDDEE"
},
list:{
height:400,
marginTop:40,
flexDirection:'row',
flexWrap:'wrap', justifyContent:'center', alignItems:'flex-start'
},
item:{
alignItems:'flex-start',
backgroundColor:'red', width:40, height:40, margin:3, padding:3,
justifyContent:'center', alignItems:'center'
}
});
class TestCmp extends Component {
constructor(props) {
super(props);
var ds = new ListView.DataSource({rowHasChanged:(r1, r2) => r1 !== r2});
var data = Array.apply(null, {length:20}).map(Number.call, Number);
alert(data);
this.state = {dataSource:ds.cloneWithRows(data)};
}
render() {
return (
<ListView contentContainerStyle={styles.list} dataSource={this.state.dataSource} renderRow={
(rowData) => {
return (
<View style={styles.item}>
<Text>{rowData}</Text>
</View>
)
}
}/>
);
}
}
export default class TestPage extends Component {
render() {
return (
<View style={styles.container}>
<TestCmp/>
</View>
)
}
}
Что случилось с другими 10 пунктов? Я пробовал использовать инспектор и менял высоту контейнера, и ничего не сработало.
Ну, это совершенно тупой. Этот контейнер огромен - почему он решил просто случайно отображать некоторые элементы, когда страница полностью пуста? Могу ли я лучше использовать 'Array.map' с элементом' View'? Кажется проще и не имеет смешных правил. – jcollum
Да. Если количества элементов не так много, нет никаких оснований использовать ListView. – Jickson
Главным преимуществом использования ListView является оптимизация рендеринга, поэтому установка 'initialListSize' на количество элементов делает его абсолютно бесполезным. Для сложных элементов списка даже 10 первоначальных рендерингов могут быть достаточными, чтобы сделать ui невосприимчивым. – farwayer