OnPress получает последний элемент Uid после цикла - PullRequest
0 голосов
/ 19 июня 2019

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

Пробные журналы консоли вдоль цикла, чтобы я мог понять, какой Uid я получал, где и когда.

Это цикл, в котором я получаю список пожеланий пользователя (который состоит из Uid), а затем я получаю const для получения всех вин в БД.

onPress находится внутри 1-го MenuItemи вызывает this.goToWine(vinhoUid, navigation) и должен перейти на страницу вина, по которой щелкнули (вместо последнего вина, которое было возвращено в цикле).

const Tinto = () => this.props.seeVisitedUser.vinhosWish.map((id) => {

            const vinho = todosVinho.find(v => v.vinhoUid === id);
            if (vinho) {
                const {nome, fotoVinho, tipoVinho, vinhoUid} = vinho;
                switch (tipoVinho) {
                    case 'Tinto':
                        return (
                            <View key={vinhoUid}>

                                <ImageBackground style={styles.wines_pic_l}
                                                 source={{uri: fotoVinho}}>
                                    <Menu
                                        ref={this.setMenuRef}
                                        button={<Text onPress={this.showMenu} style={styles.wines_pic_l}> </Text>}
                                    >
                                        <MenuItem onPress={() => {
                                            this.hideMenu();
                                            this.goToWine(vinhoUid, navigation);

                                        }}>Ver vinho</MenuItem>


                                        <MenuItem onPress={this.hideMenu}>Adicionar à Adega</MenuItem>
                                        <MenuItem onPress={this.hideMenu}>Apagar</MenuItem>
                                        <MenuDivider/>
                                        <MenuItem onPress={this.hideMenu}>Cancelar</MenuItem>
                                    </Menu>
                                </ImageBackground>

Это то, что onPress вызывает

goToWine(vinhoUid, navigation) {
        db.collection('vinhos').doc(vinhoUid).get()
            .then(docSnapshot => {
                store.dispatch(showWine(docSnapshot.data()));
            }).then(
            navigation.navigate('WineInfo')
        )
    }

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

Извините, если я отформатировал это неправильно или спросил неверный путь, 1-й раз здесь и все еще немного потерян.Также в панике.

Заранее спасибо.

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