React Native SectionList повторно отображает одни и те же данные несколько раз - PullRequest
1 голос
/ 24 марта 2020

Я столкнулся с проблемой, которую я не могу выяснить, является ли это моей ошибкой или это правильное поведение.

Я рендеринг некоторых данных с использованием компонента SectionList React Native, структура которого выглядит следующим образом:

const CATEGORIES = [
  {
    id: 1, title: "LABEL C:1", data: [
      { id: 11, name: "LABEL C:1 S:11" },
      { id: 12, name: "LABEL C:1 S:12" },
      { id: 13, name: "LABEL C:1 S:13" },
      // ... more items
    ]
  },
  // ... more items
];

Затем компонент, который обрабатывает все это, выглядит следующим образом:

//
// const CATEGORIES = [ ... ];

class CategoriesAndSubcategories extends React.Component{
  keyExtractor = (item, idx) => {
    console.log("key extractor", JSON.stringify(item));
    return item.id;
  };

  renderItem = (props) => {
    return <Text>{props.item.name}</Text>;
  }

  renderSectionHeader = (props) => {
    return <Text>{props.section.title}</Text>;
  }

  render = () => {
    console.log("STARTED RENDER");

    const CATEGORIES = this.props.categories;

    return <View style={{ flex: 1, backgroundColor: "#FFF" }}>
      <SectionList
        style={{ flex: 1 }}
        contentContainerStyle={{ flexGrow:1 }}
        sections={CATEGORIES}
        keyExtractor={this.keyExtractor}
        renderItem={this.renderItem}
        renderSectionHeader={this.renderSectionHeader}
      />
    </View>
  };
};

Я заметил, что происходит то, что я получаю console.log s для одного и того же элемента несколько раз для один рендер. Я поместил console.log в метод keyExtractor, но ту же ситуацию можно воспроизвести, используя любой метод рендеринга (renderItem или renderSectionHeader).
Метод рендеринга компонента класса (CategoriesAndSubcategories) запускается только один раз, что доказано от console.log в начале метода рендеринга.

Однако взгляните на логи, которые я получаю в консоли:

STARTED RENDER
key extractor {"id":1,"name":"LABEL C:1 S:1"}
key extractor {"id":2,"name":"LABEL C:1 S:2"}
key extractor {"id":3,"name":"LABEL C:1 S:3"}
key extractor {"id":4,"name":"LABEL C:1 S:4"}
key extractor {"id":5,"name":"LABEL C:1 S:5"}
key extractor {"id":6,"name":"LABEL C:1 S:6"}
key extractor {"id":7,"name":"LABEL C:1 S:7"}
key extractor {"id":8,"name":"LABEL C:1 S:8"}
key extractor {"id":9,"name":"LABEL C:1 S:9"}
key extractor {"id":9,"name":"LABEL C:1 S:9"}
key extractor {"id":1,"name":"LABEL C:1 S:1"}
key extractor {"id":2,"name":"LABEL C:1 S:2"}
key extractor {"id":1,"name":"LABEL C:1 S:1"}
key extractor {"id":3,"name":"LABEL C:1 S:3"}
key extractor {"id":2,"name":"LABEL C:1 S:2"}
key extractor {"id":4,"name":"LABEL C:1 S:4"}
key extractor {"id":3,"name":"LABEL C:1 S:3"}
key extractor {"id":5,"name":"LABEL C:1 S:5"}
key extractor {"id":4,"name":"LABEL C:1 S:4"}
key extractor {"id":6,"name":"LABEL C:1 S:6"}
key extractor {"id":5,"name":"LABEL C:1 S:5"}
key extractor {"id":7,"name":"LABEL C:1 S:7"}
key extractor {"id":6,"name":"LABEL C:1 S:6"}
key extractor {"id":8,"name":"LABEL C:1 S:8"}
key extractor {"id":7,"name":"LABEL C:1 S:7"}
key extractor {"id":9,"name":"LABEL C:1 S:9"}
key extractor {"id":8,"name":"LABEL C:1 S:8"}
key extractor {"id":9,"name":"LABEL C:1 S:9"}
key extractor {"id":9,"name":"LABEL C:1 S:9"}
key extractor {"id":9,"name":"LABEL C:1 S:9"}
key extractor {"id":9,"name":"LABEL C:1 S:9"}
key extractor {"id":9,"name":"LABEL C:1 S:9"}
key extractor {"id":9,"name":"LABEL C:1 S:9"}
key extractor {"id":9,"name":"LABEL C:1 S:9"}
key extractor {"id":9,"name":"LABEL C:1 S:9"}
key extractor {"id":9,"name":"LABEL C:1 S:9"}
key extractor {"id":9,"name":"LABEL C:1 S:9"}
key extractor {"id":1,"name":"LABEL C:1 S:1"}
key extractor {"id":2,"name":"LABEL C:1 S:2"}
key extractor {"id":3,"name":"LABEL C:1 S:3"}
key extractor {"id":4,"name":"LABEL C:1 S:4"}
key extractor {"id":5,"name":"LABEL C:1 S:5"}
key extractor {"id":6,"name":"LABEL C:1 S:6"}
key extractor {"id":7,"name":"LABEL C:1 S:7"}
key extractor {"id":8,"name":"LABEL C:1 S:8"}
key extractor {"id":9,"name":"LABEL C:1 S:9"}
key extractor {"id":10,"name":"LABEL C:2 S:10"}
key extractor {"id":11,"name":"LABEL C:2 S:11"}
key extractor {"id":12,"name":"LABEL C:2 S:12"}
key extractor {"id":13,"name":"LABEL C:2 S:13"}
key extractor {"id":14,"name":"LABEL C:3 S:14"}
key extractor {"id":15,"name":"LABEL C:3 S:15"}
key extractor {"id":16,"name":"LABEL C:3 S:16"}
key extractor {"id":17,"name":"LABEL C:3 S:17"}
key extractor {"id":18,"name":"LABEL C:3 S:18"}
key extractor {"id":19,"name":"LABEL C:3 S:19"}
key extractor {"id":20,"name":"LABEL C:3 S:20"}
key extractor {"id":21,"name":"LABEL C:3 S:21"}
key extractor {"id":22,"name":"LABEL C:3 S:22"}
key extractor {"id":23,"name":"LABEL C:3 S:23"}
key extractor {"id":24,"name":"LABEL C:3 S:24"}
key extractor {"id":25,"name":"LABEL C:3 S:25"}
key extractor {"id":26,"name":"LABEL C:3 S:26"}
key extractor {"id":27,"name":"LABEL C:3 S:27"}
key extractor {"id":28,"name":"LABEL C:3 S:28"}
key extractor {"id":29,"name":"LABEL C:3 S:29"}
key extractor {"id":30,"name":"LABEL C:3 S:30"}
key extractor {"id":31,"name":"LABEL C:3 S:31"}
key extractor {"id":32,"name":"LABEL C:3 S:32"}
key extractor {"id":33,"name":"LABEL C:3 S:33"}
key extractor {"id":34,"name":"LABEL C:3 S:34"}
key extractor {"id":35,"name":"LABEL C:3 S:35"}
key extractor {"id":36,"name":"LABEL C:3 S:36"}
key extractor {"id":37,"name":"LABEL C:3 S:37"}
key extractor {"id":38,"name":"LABEL C:3 S:38"}
key extractor {"id":39,"name":"LABEL C:3 S:39"}
key extractor {"id":40,"name":"LABEL C:3 S:40"}
key extractor {"id":41,"name":"LABEL C:3 S:41"}
key extractor {"id":42,"name":"LABEL C:3 S:42"}
key extractor {"id":43,"name":"LABEL C:3 S:43"}
key extractor {"id":44,"name":"LABEL C:3 S:44"}
key extractor {"id":45,"name":"LABEL C:3 S:45"}
key extractor {"id":46,"name":"LABEL C:3 S:46"}
key extractor {"id":47,"name":"LABEL C:3 S:47"}
key extractor {"id":48,"name":"LABEL C:3 S:48"}
key extractor {"id":49,"name":"LABEL C:3 S:49"}
key extractor {"id":50,"name":"LABEL C:3 S:50"}
key extractor {"id":51,"name":"LABEL C:3 S:51"}
key extractor {"id":52,"name":"LABEL C:3 S:52"}
key extractor {"id":53,"name":"LABEL C:3 S:53"}
key extractor {"id":54,"name":"LABEL C:3 S:54"}
key extractor {"id":55,"name":"LABEL C:3 S:55"}
key extractor {"id":57,"name":"LABEL C:3 S:57"}
key extractor {"id":58,"name":"LABEL C:3 S:58"}
key extractor {"id":59,"name":"LABEL C:3 S:59"}
key extractor {"id":60,"name":"LABEL C:3 S:60"}
key extractor {"id":61,"name":"LABEL C:3 S:61"}
key extractor {"id":62,"name":"LABEL C:3 S:62"}
key extractor {"id":63,"name":"LABEL C:3 S:63"}
key extractor {"id":64,"name":"LABEL C:3 S:64"}
key extractor {"id":65,"name":"LABEL C:3 S:65"}
key extractor {"id":66,"name":"LABEL C:3 S:66"}
key extractor {"id":67,"name":"LABEL C:4 S:67"}
key extractor {"id":68,"name":"LABEL C:4 S:68"}
key extractor {"id":69,"name":"LABEL C:4 S:69"}
key extractor {"id":70,"name":"LABEL C:4 S:70"}
key extractor {"id":71,"name":"LABEL C:4 S:71"}
key extractor {"id":72,"name":"LABEL C:4 S:72"}
key extractor {"id":88,"name":"LABEL C:4 S:88"}
key extractor {"id":73,"name":"LABEL C:5 S:73"}
key extractor {"id":74,"name":"LABEL C:5 S:74"}
key extractor {"id":75,"name":"LABEL C:5 S:75"}
key extractor {"id":76,"name":"LABEL C:5 S:76"}
key extractor {"id":77,"name":"LABEL C:6 S:77"}
key extractor {"id":78,"name":"LABEL C:6 S:78"}
key extractor {"id":79,"name":"LABEL C:6 S:79"}
key extractor {"id":80,"name":"LABEL C:6 S:80"}
key extractor {"id":81,"name":"LABEL C:6 S:81"}
key extractor {"id":82,"name":"LABEL C:6 S:82"}
key extractor {"id":83,"name":"LABEL C:6 S:83"}
key extractor {"id":84,"name":"LABEL C:6 S:84"}
key extractor {"id":85,"name":"LABEL C:6 S:85"}
key extractor {"id":1,"name":"LABEL C:1 S:1"}
key extractor {"id":2,"name":"LABEL C:1 S:2"}
key extractor {"id":3,"name":"LABEL C:1 S:3"}
key extractor {"id":4,"name":"LABEL C:1 S:4"}
key extractor {"id":5,"name":"LABEL C:1 S:5"}
key extractor {"id":6,"name":"LABEL C:1 S:6"}
key extractor {"id":7,"name":"LABEL C:1 S:7"}
key extractor {"id":8,"name":"LABEL C:1 S:8"}
key extractor {"id":9,"name":"LABEL C:1 S:9"}
key extractor {"id":10,"name":"LABEL C:2 S:10"}
key extractor {"id":11,"name":"LABEL C:2 S:11"}
key extractor {"id":12,"name":"LABEL C:2 S:12"}
key extractor {"id":13,"name":"LABEL C:2 S:13"}
key extractor {"id":14,"name":"LABEL C:3 S:14"}
key extractor {"id":15,"name":"LABEL C:3 S:15"}
key extractor {"id":16,"name":"LABEL C:3 S:16"}
key extractor {"id":17,"name":"LABEL C:3 S:17"}
key extractor {"id":18,"name":"LABEL C:3 S:18"}
key extractor {"id":19,"name":"LABEL C:3 S:19"}
key extractor {"id":20,"name":"LABEL C:3 S:20"}
key extractor {"id":21,"name":"LABEL C:3 S:21"}
key extractor {"id":22,"name":"LABEL C:3 S:22"}
key extractor {"id":23,"name":"LABEL C:3 S:23"}
key extractor {"id":24,"name":"LABEL C:3 S:24"}
key extractor {"id":25,"name":"LABEL C:3 S:25"}
key extractor {"id":26,"name":"LABEL C:3 S:26"}
key extractor {"id":27,"name":"LABEL C:3 S:27"}
key extractor {"id":28,"name":"LABEL C:3 S:28"}
key extractor {"id":29,"name":"LABEL C:3 S:29"}
key extractor {"id":30,"name":"LABEL C:3 S:30"}
key extractor {"id":30,"name":"LABEL C:3 S:30"}
key extractor {"id":9,"name":"LABEL C:1 S:9"}
key extractor {"id":1,"name":"LABEL C:1 S:1"}
key extractor {"id":2,"name":"LABEL C:1 S:2"}
key extractor {"id":1,"name":"LABEL C:1 S:1"}
key extractor {"id":3,"name":"LABEL C:1 S:3"}
key extractor {"id":2,"name":"LABEL C:1 S:2"}
key extractor {"id":4,"name":"LABEL C:1 S:4"}
key extractor {"id":3,"name":"LABEL C:1 S:3"}
key extractor {"id":5,"name":"LABEL C:1 S:5"}
key extractor {"id":4,"name":"LABEL C:1 S:4"}
key extractor {"id":6,"name":"LABEL C:1 S:6"}
key extractor {"id":5,"name":"LABEL C:1 S:5"}
key extractor {"id":7,"name":"LABEL C:1 S:7"}
key extractor {"id":6,"name":"LABEL C:1 S:6"}
key extractor {"id":8,"name":"LABEL C:1 S:8"}
key extractor {"id":7,"name":"LABEL C:1 S:7"}
key extractor {"id":9,"name":"LABEL C:1 S:9"}
key extractor {"id":8,"name":"LABEL C:1 S:8"}
key extractor {"id":10,"name":"LABEL C:2 S:10"}
key extractor {"id":11,"name":"LABEL C:2 S:11"}
key extractor {"id":10,"name":"LABEL C:2 S:10"}
key extractor {"id":12,"name":"LABEL C:2 S:12"}
key extractor {"id":11,"name":"LABEL C:2 S:11"}
key extractor {"id":13,"name":"LABEL C:2 S:13"}
key extractor {"id":12,"name":"LABEL C:2 S:12"}
key extractor {"id":14,"name":"LABEL C:3 S:14"}
key extractor {"id":15,"name":"LABEL C:3 S:15"}
key extractor {"id":14,"name":"LABEL C:3 S:14"}
key extractor {"id":16,"name":"LABEL C:3 S:16"}
key extractor {"id":15,"name":"LABEL C:3 S:15"}
key extractor {"id":17,"name":"LABEL C:3 S:17"}
key extractor {"id":16,"name":"LABEL C:3 S:16"}
key extractor {"id":18,"name":"LABEL C:3 S:18"}
key extractor {"id":17,"name":"LABEL C:3 S:17"}
key extractor {"id":19,"name":"LABEL C:3 S:19"}
key extractor {"id":18,"name":"LABEL C:3 S:18"}
key extractor {"id":20,"name":"LABEL C:3 S:20"}
key extractor {"id":19,"name":"LABEL C:3 S:19"}
key extractor {"id":21,"name":"LABEL C:3 S:21"}
key extractor {"id":20,"name":"LABEL C:3 S:20"}
key extractor {"id":22,"name":"LABEL C:3 S:22"}
key extractor {"id":21,"name":"LABEL C:3 S:21"}
key extractor {"id":23,"name":"LABEL C:3 S:23"}
key extractor {"id":22,"name":"LABEL C:3 S:22"}
key extractor {"id":24,"name":"LABEL C:3 S:24"}
key extractor {"id":23,"name":"LABEL C:3 S:23"}
key extractor {"id":25,"name":"LABEL C:3 S:25"}
key extractor {"id":24,"name":"LABEL C:3 S:24"}
key extractor {"id":26,"name":"LABEL C:3 S:26"}
key extractor {"id":25,"name":"LABEL C:3 S:25"}
key extractor {"id":27,"name":"LABEL C:3 S:27"}
key extractor {"id":26,"name":"LABEL C:3 S:26"}
key extractor {"id":28,"name":"LABEL C:3 S:28"}
key extractor {"id":27,"name":"LABEL C:3 S:27"}
key extractor {"id":29,"name":"LABEL C:3 S:29"}
key extractor {"id":28,"name":"LABEL C:3 S:28"}
key extractor {"id":30,"name":"LABEL C:3 S:30"}
key extractor {"id":29,"name":"LABEL C:3 S:29"}
key extractor {"id":30,"name":"LABEL C:3 S:30"}
key extractor {"id":30,"name":"LABEL C:3 S:30"}
key extractor {"id":1,"name":"LABEL C:1 S:1"}
key extractor {"id":2,"name":"LABEL C:1 S:2"}
key extractor {"id":3,"name":"LABEL C:1 S:3"}
key extractor {"id":4,"name":"LABEL C:1 S:4"}
key extractor {"id":5,"name":"LABEL C:1 S:5"}
key extractor {"id":6,"name":"LABEL C:1 S:6"}
key extractor {"id":7,"name":"LABEL C:1 S:7"}
key extractor {"id":8,"name":"LABEL C:1 S:8"}
key extractor {"id":9,"name":"LABEL C:1 S:9"}
key extractor {"id":10,"name":"LABEL C:2 S:10"}
key extractor {"id":11,"name":"LABEL C:2 S:11"}
key extractor {"id":12,"name":"LABEL C:2 S:12"}
key extractor {"id":13,"name":"LABEL C:2 S:13"}
key extractor {"id":14,"name":"LABEL C:3 S:14"}
key extractor {"id":15,"name":"LABEL C:3 S:15"}
key extractor {"id":16,"name":"LABEL C:3 S:16"}
key extractor {"id":17,"name":"LABEL C:3 S:17"}
key extractor {"id":18,"name":"LABEL C:3 S:18"}
key extractor {"id":19,"name":"LABEL C:3 S:19"}
key extractor {"id":20,"name":"LABEL C:3 S:20"}
key extractor {"id":21,"name":"LABEL C:3 S:21"}
key extractor {"id":22,"name":"LABEL C:3 S:22"}
key extractor {"id":23,"name":"LABEL C:3 S:23"}
key extractor {"id":24,"name":"LABEL C:3 S:24"}
key extractor {"id":25,"name":"LABEL C:3 S:25"}
key extractor {"id":26,"name":"LABEL C:3 S:26"}
key extractor {"id":27,"name":"LABEL C:3 S:27"}
key extractor {"id":28,"name":"LABEL C:3 S:28"}
key extractor {"id":29,"name":"LABEL C:3 S:29"}
key extractor {"id":30,"name":"LABEL C:3 S:30"}
key extractor {"id":31,"name":"LABEL C:3 S:31"}
key extractor {"id":32,"name":"LABEL C:3 S:32"}
key extractor {"id":33,"name":"LABEL C:3 S:33"}
key extractor {"id":34,"name":"LABEL C:3 S:34"}
key extractor {"id":35,"name":"LABEL C:3 S:35"}
key extractor {"id":36,"name":"LABEL C:3 S:36"}
key extractor {"id":37,"name":"LABEL C:3 S:37"}
key extractor {"id":38,"name":"LABEL C:3 S:38"}
key extractor {"id":39,"name":"LABEL C:3 S:39"}
key extractor {"id":40,"name":"LABEL C:3 S:40"}
key extractor {"id":41,"name":"LABEL C:3 S:41"}
key extractor {"id":42,"name":"LABEL C:3 S:42"}
key extractor {"id":43,"name":"LABEL C:3 S:43"}
key extractor {"id":44,"name":"LABEL C:3 S:44"}
key extractor {"id":45,"name":"LABEL C:3 S:45"}
key extractor {"id":46,"name":"LABEL C:3 S:46"}
key extractor {"id":47,"name":"LABEL C:3 S:47"}
key extractor {"id":48,"name":"LABEL C:3 S:48"}
key extractor {"id":49,"name":"LABEL C:3 S:49"}
key extractor {"id":50,"name":"LABEL C:3 S:50"}
key extractor {"id":51,"name":"LABEL C:3 S:51"}
key extractor {"id":52,"name":"LABEL C:3 S:52"}
key extractor {"id":53,"name":"LABEL C:3 S:53"}
key extractor {"id":54,"name":"LABEL C:3 S:54"}
key extractor {"id":55,"name":"LABEL C:3 S:55"}
key extractor {"id":57,"name":"LABEL C:3 S:57"}
key extractor {"id":58,"name":"LABEL C:3 S:58"}
key extractor {"id":59,"name":"LABEL C:3 S:59"}
key extractor {"id":60,"name":"LABEL C:3 S:60"}
key extractor {"id":61,"name":"LABEL C:3 S:61"}
key extractor {"id":62,"name":"LABEL C:3 S:62"}
key extractor {"id":63,"name":"LABEL C:3 S:63"}
key extractor {"id":64,"name":"LABEL C:3 S:64"}
key extractor {"id":65,"name":"LABEL C:3 S:65"}
key extractor {"id":66,"name":"LABEL C:3 S:66"}
key extractor {"id":67,"name":"LABEL C:4 S:67"}
key extractor {"id":68,"name":"LABEL C:4 S:68"}
key extractor {"id":69,"name":"LABEL C:4 S:69"}
key extractor {"id":70,"name":"LABEL C:4 S:70"}
key extractor {"id":71,"name":"LABEL C:4 S:71"}
key extractor {"id":72,"name":"LABEL C:4 S:72"}
key extractor {"id":88,"name":"LABEL C:4 S:88"}
key extractor {"id":73,"name":"LABEL C:5 S:73"}
key extractor {"id":74,"name":"LABEL C:5 S:74"}
key extractor {"id":75,"name":"LABEL C:5 S:75"}
key extractor {"id":76,"name":"LABEL C:5 S:76"}
key extractor {"id":77,"name":"LABEL C:6 S:77"}
key extractor {"id":78,"name":"LABEL C:6 S:78"}
key extractor {"id":79,"name":"LABEL C:6 S:79"}
key extractor {"id":80,"name":"LABEL C:6 S:80"}
key extractor {"id":81,"name":"LABEL C:6 S:81"}
key extractor {"id":82,"name":"LABEL C:6 S:82"}
key extractor {"id":83,"name":"LABEL C:6 S:83"}
key extractor {"id":84,"name":"LABEL C:6 S:84"}
key extractor {"id":85,"name":"LABEL C:6 S:85"}
key extractor {"id":1,"name":"LABEL C:1 S:1"}
key extractor {"id":2,"name":"LABEL C:1 S:2"}
key extractor {"id":3,"name":"LABEL C:1 S:3"}
key extractor {"id":4,"name":"LABEL C:1 S:4"}
key extractor {"id":5,"name":"LABEL C:1 S:5"}
key extractor {"id":6,"name":"LABEL C:1 S:6"}
key extractor {"id":7,"name":"LABEL C:1 S:7"}
key extractor {"id":8,"name":"LABEL C:1 S:8"}
key extractor {"id":9,"name":"LABEL C:1 S:9"}
key extractor {"id":10,"name":"LABEL C:2 S:10"}
key extractor {"id":11,"name":"LABEL C:2 S:11"}
key extractor {"id":12,"name":"LABEL C:2 S:12"}
key extractor {"id":13,"name":"LABEL C:2 S:13"}
key extractor {"id":14,"name":"LABEL C:3 S:14"}
key extractor {"id":15,"name":"LABEL C:3 S:15"}
key extractor {"id":16,"name":"LABEL C:3 S:16"}
key extractor {"id":17,"name":"LABEL C:3 S:17"}
key extractor {"id":18,"name":"LABEL C:3 S:18"}
key extractor {"id":19,"name":"LABEL C:3 S:19"}
key extractor {"id":20,"name":"LABEL C:3 S:20"}
key extractor {"id":21,"name":"LABEL C:3 S:21"}
key extractor {"id":22,"name":"LABEL C:3 S:22"}
key extractor {"id":23,"name":"LABEL C:3 S:23"}
key extractor {"id":24,"name":"LABEL C:3 S:24"}
key extractor {"id":25,"name":"LABEL C:3 S:25"}
key extractor {"id":26,"name":"LABEL C:3 S:26"}
key extractor {"id":27,"name":"LABEL C:3 S:27"}
key extractor {"id":28,"name":"LABEL C:3 S:28"}
key extractor {"id":29,"name":"LABEL C:3 S:29"}
key extractor {"id":30,"name":"LABEL C:3 S:30"}
key extractor {"id":31,"name":"LABEL C:3 S:31"}
key extractor {"id":32,"name":"LABEL C:3 S:32"}
key extractor {"id":33,"name":"LABEL C:3 S:33"}
key extractor {"id":34,"name":"LABEL C:3 S:34"}
key extractor {"id":35,"name":"LABEL C:3 S:35"}
key extractor {"id":36,"name":"LABEL C:3 S:36"}
key extractor {"id":37,"name":"LABEL C:3 S:37"}
key extractor {"id":38,"name":"LABEL C:3 S:38"}
key extractor {"id":39,"name":"LABEL C:3 S:39"}
key extractor {"id":40,"name":"LABEL C:3 S:40"}
key extractor {"id":40,"name":"LABEL C:3 S:40"}
key extractor {"id":9,"name":"LABEL C:1 S:9"}
key extractor {"id":1,"name":"LABEL C:1 S:1"}
key extractor {"id":2,"name":"LABEL C:1 S:2"}
key extractor {"id":1,"name":"LABEL C:1 S:1"}
key extractor {"id":3,"name":"LABEL C:1 S:3"}
key extractor {"id":2,"name":"LABEL C:1 S:2"}
key extractor {"id":4,"name":"LABEL C:1 S:4"}
key extractor {"id":3,"name":"LABEL C:1 S:3"}
key extractor {"id":5,"name":"LABEL C:1 S:5"}
key extractor {"id":4,"name":"LABEL C:1 S:4"}
key extractor {"id":6,"name":"LABEL C:1 S:6"}
key extractor {"id":5,"name":"LABEL C:1 S:5"}
key extractor {"id":7,"name":"LABEL C:1 S:7"}
key extractor {"id":6,"name":"LABEL C:1 S:6"}
key extractor {"id":8,"name":"LABEL C:1 S:8"}
key extractor {"id":7,"name":"LABEL C:1 S:7"}
key extractor {"id":9,"name":"LABEL C:1 S:9"}
key extractor {"id":8,"name":"LABEL C:1 S:8"}
key extractor {"id":10,"name":"LABEL C:2 S:10"}
key extractor {"id":11,"name":"LABEL C:2 S:11"}
key extractor {"id":10,"name":"LABEL C:2 S:10"}
key extractor {"id":12,"name":"LABEL C:2 S:12"}
key extractor {"id":11,"name":"LABEL C:2 S:11"}
key extractor {"id":13,"name":"LABEL C:2 S:13"}
key extractor {"id":12,"name":"LABEL C:2 S:12"}
key extractor {"id":14,"name":"LABEL C:3 S:14"}
key extractor {"id":15,"name":"LABEL C:3 S:15"}
key extractor {"id":14,"name":"LABEL C:3 S:14"}
key extractor {"id":16,"name":"LABEL C:3 S:16"}
key extractor {"id":15,"name":"LABEL C:3 S:15"}
key extractor {"id":17,"name":"LABEL C:3 S:17"}
key extractor {"id":16,"name":"LABEL C:3 S:16"}
key extractor {"id":18,"name":"LABEL C:3 S:18"}
key extractor {"id":17,"name":"LABEL C:3 S:17"}
key extractor {"id":19,"name":"LABEL C:3 S:19"}
key extractor {"id":18,"name":"LABEL C:3 S:18"}
key extractor {"id":20,"name":"LABEL C:3 S:20"}
key extractor {"id":19,"name":"LABEL C:3 S:19"}
key extractor {"id":21,"name":"LABEL C:3 S:21"}
key extractor {"id":20,"name":"LABEL C:3 S:20"}
key extractor {"id":22,"name":"LABEL C:3 S:22"}
key extractor {"id":21,"name":"LABEL C:3 S:21"}
key extractor {"id":23,"name":"LABEL C:3 S:23"}
key extractor {"id":22,"name":"LABEL C:3 S:22"}
key extractor {"id":24,"name":"LABEL C:3 S:24"}
key extractor {"id":23,"name":"LABEL C:3 S:23"}
key extractor {"id":25,"name":"LABEL C:3 S:25"}
key extractor {"id":24,"name":"LABEL C:3 S:24"}
key extractor {"id":26,"name":"LABEL C:3 S:26"}
key extractor {"id":25,"name":"LABEL C:3 S:25"}
key extractor {"id":27,"name":"LABEL C:3 S:27"}
key extractor {"id":26,"name":"LABEL C:3 S:26"}
key extractor {"id":28,"name":"LABEL C:3 S:28"}
key extractor {"id":27,"name":"LABEL C:3 S:27"}
key extractor {"id":29,"name":"LABEL C:3 S:29"}
key extractor {"id":28,"name":"LABEL C:3 S:28"}
key extractor {"id":30,"name":"LABEL C:3 S:30"}
key extractor {"id":29,"name":"LABEL C:3 S:29"}
key extractor {"id":31,"name":"LABEL C:3 S:31"}
key extractor {"id":30,"name":"LABEL C:3 S:30"}
key extractor {"id":32,"name":"LABEL C:3 S:32"}
key extractor {"id":31,"name":"LABEL C:3 S:31"}
key extractor {"id":33,"name":"LABEL C:3 S:33"}
key extractor {"id":32,"name":"LABEL C:3 S:32"}
key extractor {"id":34,"name":"LABEL C:3 S:34"}
key extractor {"id":33,"name":"LABEL C:3 S:33"}
key extractor {"id":35,"name":"LABEL C:3 S:35"}
key extractor {"id":34,"name":"LABEL C:3 S:34"}
key extractor {"id":36,"name":"LABEL C:3 S:36"}
key extractor {"id":35,"name":"LABEL C:3 S:35"}
key extractor {"id":37,"name":"LABEL C:3 S:37"}
key extractor {"id":36,"name":"LABEL C:3 S:36"}
key extractor {"id":38,"name":"LABEL C:3 S:38"}
key extractor {"id":37,"name":"LABEL C:3 S:37"}
key extractor {"id":39,"name":"LABEL C:3 S:39"}
key extractor {"id":38,"name":"LABEL C:3 S:38"}
key extractor {"id":40,"name":"LABEL C:3 S:40"}
key extractor {"id":39,"name":"LABEL C:3 S:39"}
key extractor {"id":40,"name":"LABEL C:3 S:40"}
key extractor {"id":40,"name":"LABEL C:3 S:40"}
key extractor {"id":40,"name":"LABEL C:3 S:40"}
key extractor {"id":40,"name":"LABEL C:3 S:40"}
key extractor {"id":40,"name":"LABEL C:3 S:40"}
key extractor {"id":40,"name":"LABEL C:3 S:40"}
key extractor {"id":40,"name":"LABEL C:3 S:40"}
key extractor {"id":40,"name":"LABEL C:3 S:40"}
key extractor {"id":40,"name":"LABEL C:3 S:40"}
key extractor {"id":40,"name":"LABEL C:3 S:40"}
key extractor {"id":40,"name":"LABEL C:3 S:40"}
key extractor {"id":40,"name":"LABEL C:3 S:40"}
key extractor {"id":40,"name":"LABEL C:3 S:40"}
key extractor {"id":40,"name":"LABEL C:3 S:40"}
key extractor {"id":40,"name":"LABEL C:3 S:40"}
key extractor {"id":40,"name":"LABEL C:3 S:40"}
key extractor {"id":40,"name":"LABEL C:3 S:40"}
key extractor {"id":40,"name":"LABEL C:3 S:40"}
key extractor {"id":40,"name":"LABEL C:3 S:40"}
key extractor {"id":40,"name":"LABEL C:3 S:40"}
key extractor {"id":40,"name":"LABEL C:3 S:40"}
key extractor {"id":40,"name":"LABEL C:3 S:40"}
key extractor {"id":40,"name":"LABEL C:3 S:40"}
key extractor {"id":40,"name":"LABEL C:3 S:40"}
key extractor {"id":40,"name":"LABEL C:3 S:40"}
key extractor {"id":40,"name":"LABEL C:3 S:40"}
key extractor {"id":40,"name":"LABEL C:3 S:40"}
key extractor {"id":40,"name":"LABEL C:3 S:40"}
key extractor {"id":40,"name":"LABEL C:3 S:40"}
key extractor {"id":40,"name":"LABEL C:3 S:40"}
key extractor {"id":40,"name":"LABEL C:3 S:40"}
key extractor {"id":40,"name":"LABEL C:3 S:40"}
key extractor {"id":40,"name":"LABEL C:3 S:40"}
key extractor {"id":40,"name":"LABEL C:3 S:40"}
key extractor {"id":40,"name":"LABEL C:3 S:40"}
key extractor {"id":40,"name":"LABEL C:3 S:40"}
key extractor {"id":40,"name":"LABEL C:3 S:40"}
key extractor {"id":40,"name":"LABEL C:3 S:40"}
key extractor {"id":1,"name":"LABEL C:1 S:1"}
key extractor {"id":2,"name":"LABEL C:1 S:2"}
key extractor {"id":3,"name":"LABEL C:1 S:3"}
key extractor {"id":4,"name":"LABEL C:1 S:4"}
key extractor {"id":5,"name":"LABEL C:1 S:5"}
key extractor {"id":6,"name":"LABEL C:1 S:6"}
key extractor {"id":7,"name":"LABEL C:1 S:7"}
key extractor {"id":8,"name":"LABEL C:1 S:8"}
key extractor {"id":9,"name":"LABEL C:1 S:9"}
key extractor {"id":10,"name":"LABEL C:2 S:10"}
key extractor {"id":11,"name":"LABEL C:2 S:11"}
key extractor {"id":12,"name":"LABEL C:2 S:12"}
key extractor {"id":13,"name":"LABEL C:2 S:13"}
key extractor {"id":14,"name":"LABEL C:3 S:14"}
key extractor {"id":15,"name":"LABEL C:3 S:15"}
key extractor {"id":16,"name":"LABEL C:3 S:16"}
key extractor {"id":17,"name":"LABEL C:3 S:17"}
key extractor {"id":18,"name":"LABEL C:3 S:18"}
key extractor {"id":19,"name":"LABEL C:3 S:19"}
key extractor {"id":20,"name":"LABEL C:3 S:20"}
key extractor {"id":21,"name":"LABEL C:3 S:21"}
key extractor {"id":22,"name":"LABEL C:3 S:22"}
key extractor {"id":23,"name":"LABEL C:3 S:23"}
key extractor {"id":24,"name":"LABEL C:3 S:24"}
key extractor {"id":25,"name":"LABEL C:3 S:25"}
key extractor {"id":26,"name":"LABEL C:3 S:26"}
key extractor {"id":27,"name":"LABEL C:3 S:27"}
key extractor {"id":28,"name":"LABEL C:3 S:28"}
key extractor {"id":29,"name":"LABEL C:3 S:29"}
key extractor {"id":30,"name":"LABEL C:3 S:30"}
key extractor {"id":31,"name":"LABEL C:3 S:31"}
key extractor {"id":32,"name":"LABEL C:3 S:32"}
key extractor {"id":33,"name":"LABEL C:3 S:33"}
key extractor {"id":34,"name":"LABEL C:3 S:34"}
key extractor {"id":35,"name":"LABEL C:3 S:35"}
key extractor {"id":36,"name":"LABEL C:3 S:36"}
key extractor {"id":37,"name":"LABEL C:3 S:37"}
key extractor {"id":38,"name":"LABEL C:3 S:38"}
key extractor {"id":39,"name":"LABEL C:3 S:39"}
key extractor {"id":40,"name":"LABEL C:3 S:40"}
key extractor {"id":41,"name":"LABEL C:3 S:41"}
key extractor {"id":42,"name":"LABEL C:3 S:42"}
key extractor {"id":43,"name":"LABEL C:3 S:43"}
key extractor {"id":44,"name":"LABEL C:3 S:44"}
key extractor {"id":45,"name":"LABEL C:3 S:45"}
key extractor {"id":46,"name":"LABEL C:3 S:46"}
key extractor {"id":47,"name":"LABEL C:3 S:47"}
key extractor {"id":48,"name":"LABEL C:3 S:48"}
key extractor {"id":49,"name":"LABEL C:3 S:49"}
key extractor {"id":50,"name":"LABEL C:3 S:50"}
key extractor {"id":51,"name":"LABEL C:3 S:51"}
key extractor {"id":52,"name":"LABEL C:3 S:52"}
key extractor {"id":53,"name":"LABEL C:3 S:53"}
key extractor {"id":54,"name":"LABEL C:3 S:54"}
key extractor {"id":55,"name":"LABEL C:3 S:55"}
key extractor {"id":57,"name":"LABEL C:3 S:57"}
key extractor {"id":58,"name":"LABEL C:3 S:58"}
key extractor {"id":59,"name":"LABEL C:3 S:59"}
key extractor {"id":60,"name":"LABEL C:3 S:60"}
key extractor {"id":61,"name":"LABEL C:3 S:61"}
key extractor {"id":62,"name":"LABEL C:3 S:62"}
key extractor {"id":63,"name":"LABEL C:3 S:63"}
key extractor {"id":64,"name":"LABEL C:3 S:64"}
key extractor {"id":65,"name":"LABEL C:3 S:65"}
key extractor {"id":66,"name":"LABEL C:3 S:66"}
key extractor {"id":67,"name":"LABEL C:4 S:67"}
key extractor {"id":68,"name":"LABEL C:4 S:68"}
key extractor {"id":69,"name":"LABEL C:4 S:69"}
key extractor {"id":70,"name":"LABEL C:4 S:70"}
key extractor {"id":71,"name":"LABEL C:4 S:71"}
key extractor {"id":72,"name":"LABEL C:4 S:72"}
key extractor {"id":88,"name":"LABEL C:4 S:88"}
key extractor {"id":73,"name":"LABEL C:5 S:73"}
key extractor {"id":74,"name":"LABEL C:5 S:74"}
key extractor {"id":75,"name":"LABEL C:5 S:75"}
key extractor {"id":76,"name":"LABEL C:5 S:76"}
key extractor {"id":77,"name":"LABEL C:6 S:77"}
key extractor {"id":78,"name":"LABEL C:6 S:78"}
key extractor {"id":79,"name":"LABEL C:6 S:79"}
key extractor {"id":80,"name":"LABEL C:6 S:80"}
key extractor {"id":81,"name":"LABEL C:6 S:81"}
key extractor {"id":82,"name":"LABEL C:6 S:82"}
key extractor {"id":83,"name":"LABEL C:6 S:83"}
key extractor {"id":84,"name":"LABEL C:6 S:84"}
key extractor {"id":85,"name":"LABEL C:6 S:85"}
key extractor {"id":1,"name":"LABEL C:1 S:1"}
key extractor {"id":2,"name":"LABEL C:1 S:2"}
key extractor {"id":3,"name":"LABEL C:1 S:3"}
key extractor {"id":4,"name":"LABEL C:1 S:4"}
key extractor {"id":5,"name":"LABEL C:1 S:5"}
key extractor {"id":6,"name":"LABEL C:1 S:6"}
key extractor {"id":7,"name":"LABEL C:1 S:7"}
key extractor {"id":8,"name":"LABEL C:1 S:8"}
key extractor {"id":9,"name":"LABEL C:1 S:9"}
key extractor {"id":10,"name":"LABEL C:2 S:10"}
key extractor {"id":11,"name":"LABEL C:2 S:11"}

... due to StackOverflow's character limit per-post, I cannot post the full log
... however, the same 'key extractor' logs continue about 5 times more than what posted here

Я не пытаюсь насмехаться над вами или что-то еще, это именно те журналы, которые я получаю в первый раз и только для этого компонента. Каждый элемент в SectionList перерисовывается более 10 раз, прежде чем рендеринг SectionList останавливается. Хотя рендеринг данных не обновляется в массиве CATEGORIES, во внешних контейнерах не происходит никаких изменений макета, в пользовательском интерфейсе SectionList не происходит прокрутка. Кроме того, кажется, что элементы «случайным образом» перерисовываются, как вы можете видеть в журналах, элемент key extractor {"id":40,"name":"LABEL C:3 S:40"} появляется 38 раз подряд (примерно в 70% списка журналов), в то время как в других случаях визуализация выглядит как прервана на полпути и перезапускается с самого начала.

Кто-нибудь имеет какие-либо идеи, почему с этим кодом происходит так много повторных визуализаций? Я делаю что-то не так?

ps Я использую Expo SDK36, React 16.9, React Native 0.61.4, React Navigation 5 (на данный момент 5.0.5). Поведение одинаково на iOS (10+) и Android (9).

...