React Native ref для элемента не определен в элементе плоского списка - PullRequest
0 голосов
/ 10 мая 2019

Я пытаюсь получить ссылку на элемент во время рендеринга плоского списка, но ссылка возвращается как неопределенная.См. Соответствующий код ниже:

Конструктор:

constructor(props) {
    super(props);

    this.modalRef = createRef();
}

RenderItem:

_renderItem = ({ item }, context) => {
    const modalRef = context.modalRef.current; // Why is context.modalRef.current null?
    let onPress = () => alert("Something went wrong...");

    return (
        <View style={styles.item}>
            <ListItemCard
                id={item.id}
                value="Some value.."
                onPress={onPress()}
            />
        </View>
    );
};

В функции визуализации:

Модально на экране:

    <Modal
    ref={this.modalRef}
    text="Some text.."
    onPressClose={() =>
        this.modalRef.current.close()
    }
/>

Плоский список:

  <FlatList
    data={data}
    renderItem={item => this._renderItem(item, this)}
    keyExtractor={(item, index) => index.toString()}
/>

1 Ответ

1 голос
/ 10 мая 2019

modalRef.current равно null, поскольку ссылка назначается при монтировании компонента Modal. Я предполагаю, что компонент не смонтирован во время вызова функции _renderItems.

Я рекомендую использовать ссылку внутри функции, которая не отображает компонент, например, обработчик событий. Там переменная ref должна иметь ссылку на компонент.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...