Как передать ключ через FlatList в его renderItem? - PullRequest
0 голосов
/ 06 июня 2019

У меня есть экран подачи в моем собственном приложении реакции, в котором есть компонент списка:

<List
    refreshControl={
        <RefreshControl
            tintColor={'#E4E4E4'}
            refreshing={this.state.loading}
            onRefresh={this._onRefresh}
        />
    }
    onPressFooter={this.onEndReached}
    data={this.state.posts}
/>

... который импортирует из List.js, который является компонентом FlatList:

class List extends React.Component {
    renderItem = ({ item }) => <Item {...item} />;
    keyExtractor = item => item.key;

    render() {
        const { ...props } = this.props;
        return (
            <FlatList
                ref={(ref) => { this.listRef = ref; }}
                keyExtractor={this.keyExtractor}
                renderItem={this.renderItem}
                ListFooterComponent={footerProps => (
                    <Footer {...props} />
                )}
                showsVerticalScrollIndicator={false}
                {...props}
            />
        );
    }

Внутри this.props в List.js у меня есть доступ к this.props.key, который является ключом для строки в моей базе данных Firebase, но у меня нет доступа к этому ключу в renderItem. в Item.js у меня есть доступ только к данным, хранящимся в этой строке, а не к уникальному ключу строк.

Как мне получить доступ к этому ключу внутри Item.js? Я думаю, что я просто неправильно передаю значения?

1 Ответ

0 голосов
/ 06 июня 2019

Разобрался, это было глупо.Я думаю, что это был результат keyExtractor, но я все еще мог передать ключ отдельно, как ...

renderItem({item}) {
    return (
        <Item
            _key={item.key}
            {...item}
        />
    )
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...