React Native List View Использование памяти невероятно высоко - PullRequest
0 голосов
/ 22 мая 2019

Я загружаю массив точек данных с сервера. Около 1 секунды между обновлениями.

Небольшие наборы данных - всего несколько строк JSON.

Когда загружается FlatList, похоже, он просто сохраняет всю эту память. Я вижу, как он увеличивается на 1-4 МБ каждую секунду, глядя на монитор. Это идет, пока это не будет убито iOS.

<FlatList
          data={dataArray}
          renderItem={({ item, index }) => (
            <CustomView item={item} index={index} />
          )}
          windowSize={1}
        /> 

Если я закомментирую представление FlatList, я вижу минимальное увеличение памяти. Остальная часть пользовательского интерфейса обрабатывает это обновление без проблем. (Изменение значений и т. Д.)

Вот рендер

 render() {
    const { screenProps } = this.props;
    return (
      <View>
        <View style={style.container} />
        {this.checkData(this.props.screenProps.dataArray)}
      </View>
    );
  }
}
checkData(data) {
    if (data === undefined || data.length == 0) {
      return (
        <View style={{ alignItems: "center" }}>
          <Text>Please start a test</Text>
        </View>
      );
    } else {
      return [
        <View
          style={[
            {
              backgroundColor: "#EDF5FE90"
            },
            GStyle.semiBold
          ]}
        >
          <customFirstView item={first} />
        </View>,
        <FlatList
          data={dataArray}
          renderItem={({ item, index }) => (
            <customView item={item} index={index} />
          )}
          windowSize={1}
        />
      ];
    }
  }

Любая помощь будет отличной

...