Android 如何在react native中重新加载视图列表

Android 如何在react native中重新加载视图列表,android,react-native,Android,React Native,我有一个这样的元素列表 <ScrollView style={[styles.mainContainer, styles.tripsContainer]}> <View style={{ flex: 1, flexDirection: 'row', justifyContent: 'center', alignItems: 'center', marginBottom: 10

我有一个这样的元素列表

<ScrollView style={[styles.mainContainer, styles.tripsContainer]}>
      <View style={{
        flex: 1,
        flexDirection: 'row',
        justifyContent: 'center',
        alignItems: 'center',
        marginBottom: 10
      }}>
        <Text textAlign='center' style={{ fontWeight: 'bold' }}>{100 - (totalDuration / 24).toFixed(0)} days and {totalDuration % 12} hours required...</Text>
      </View>
      {rows}
      <Animated.View shouldRasterizeIOS={true}>
        <ActivityIndicator animating={!tripsReady} style={[styles.centering, { height: 80 }]} size="large" />
      </Animated.View>
    </ScrollView>

需要{100-(totalDuration/24).toFixed(0)}天和{totalDuration%12}小时。。。
{rows}
这里{rows}包含一个数组

<TouchableHighlight key={i} onPress={() => {
    // get rest of the trip data from meteor;
    NavigationActions.tripDetails({record:record, tripId:i+1,removeTrip:(id)=>this.removeTrip(id)});}}>
    <View>
      <TripCard tripNo={i + 1} date={timeStarted} duration={record.trip.duration} distance={record.trip.distance.toFixed(2)} vehicle={record.trip.vehicle} />
    </View>
  </TouchableHighlight>
{
//从meteor获取其余行程数据;
tripDetails({record:record,tripId:i+1,removeTrip:(id)=>this.removeTrip(id)});}>

在我从rows变量中删除一个元素后,如何重新加载当前页面?

只需将必须呈现到组件状态的
行中的数据存储起来,并在适当时触发更新。例如:

constructor(){
    super();
    this.state = {rowData: ['row1Data', 'row2Data'] }; // Any data type will do. You can also start with an empty array and then populate it.
}


// ...
render(){
  let rows = this.state.rowData.map(record, i => 
     <TouchableHighlight key={i}  onPress={() => {
        // get rest of the trip data from meteor;
        NavigationActions.tripDetails({record:record, tripId:i+1,removeTrip:(id)=>this.removeTrip(id)});
        let rowData = this.state.rowData.slice(); // Make a copy of the state
        rowData.splice(i,1); // Remove the entry
        this.setState({rowData}); // Set the new data
       }}>
       <View>
           <TripCard tripNo={i + 1} date={timeStarted} duration={record.trip.duration} distance={record.trip.distance.toFixed(2)} vehicle={record.trip.vehicle} />
       </View>
      </TouchableHighlight>);
   // Proceed as usual with the value of {rows} in the return value
constructor(){
超级();
this.state={rowData:['row1Data','row2Data']};//任何数据类型都可以。您也可以从空数组开始,然后填充它。
}
// ...
render(){
让rows=this.state.rowData.map(记录,i=>
{
//从meteor获取其余行程数据;
tripDetails({record:record,tripId:i+1,removeTrip:(id)=>this.removeTrip(id)});
让rowData=this.state.rowData.slice();//复制状态
rowData.splice(i,1);//删除条目
this.setState({rowData});//设置新数据
}}>
);
//按常规处理返回值中的{rows}值

只需将必须呈现到组件状态的
行中的数据存储起来,并在适当时触发更新。例如:

constructor(){
    super();
    this.state = {rowData: ['row1Data', 'row2Data'] }; // Any data type will do. You can also start with an empty array and then populate it.
}


// ...
render(){
  let rows = this.state.rowData.map(record, i => 
     <TouchableHighlight key={i}  onPress={() => {
        // get rest of the trip data from meteor;
        NavigationActions.tripDetails({record:record, tripId:i+1,removeTrip:(id)=>this.removeTrip(id)});
        let rowData = this.state.rowData.slice(); // Make a copy of the state
        rowData.splice(i,1); // Remove the entry
        this.setState({rowData}); // Set the new data
       }}>
       <View>
           <TripCard tripNo={i + 1} date={timeStarted} duration={record.trip.duration} distance={record.trip.distance.toFixed(2)} vehicle={record.trip.vehicle} />
       </View>
      </TouchableHighlight>);
   // Proceed as usual with the value of {rows} in the return value
constructor(){
超级();
this.state={rowData:['row1Data','row2Data']};//任何数据类型都可以。您也可以从空数组开始,然后填充它。
}
// ...
render(){
让rows=this.state.rowData.map(记录,i=>
{
//从meteor获取其余行程数据;
tripDetails({record:record,tripId:i+1,removeTrip:(id)=>this.removeTrip(id)});
让rowData=this.state.rowData.slice();//复制状态
rowData.splice(i,1);//删除条目
this.setState({rowData});//设置新数据
}}>
);
//按常规处理返回值中的{rows}值