Собственный плоский список реагирования - keyExtractor возвращает дублирующийся элемент и пропускает до конца массива данных - PullRequest
0 голосов
/ 21 мая 2018

Сообщая о странном поведении здесь, надеюсь, кто-то сталкивался с этим.Я получаю сообщение об ошибке «Нарушение инварианта: VirtualizedList содержит ячейку, которая сама содержит более одного VirtualizedList той же ориентации, что и родительский список. Вы должны передать уникальную команду listKey каждому списку родственников».

Использование реакциинативная 0.55.4

return (
        <View style={{ flex: 1 }}>
            <FlatList
                data={data}
                keyExtractor={(item, index) => {
                    console.log(`${item}-${index}`)
                    return `${item}-${index}`;
                }}
                renderItem={this.renderItem}
                getItemLayout={this.getItemLayout}
                ItemSeparatorComponent={HairSpacer}
            />
        </View>
    );

данные:

["korbit", "kraken", "bitstamp", "bitflyer", "bittrex", "bitfinex", "poloniex", "huobi", "zaif", "coincheck", "bithumb", "coinnest", "btcbox", "okcoin", "aex", "binance", "coinbase", "coinrail", "upbit", "coinone", "kucoin", "gate", "zb", "coin", "gopax"]

консоль:

kraken-1 
bitstamp-2 
bitflyer-3 
bittrex-4 
bitfinex-5 
poloniex-6 
huobi-7 
zaif-8 
coincheck-9 
coincheck-9 
gopax-24 

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

Любой совет приветствуется

1 Ответ

0 голосов
/ 02 сентября 2018

Попробуйте использовать listkey вместо keyExtractor

...