Реагировать на родной onPress с TouchableWithoutFeedback не работает - PullRequest
0 голосов
/ 01 декабря 2018

Я занимаюсь разработкой простого приложения React Native для целей обучения.Я просто делаю свой первый шаг, чтобы попасть в мир React Native.Но на этой самой ранней стадии у меня возникают проблемы.Я не могу заставить работать простое сенсорное событие.Я реализую сенсорное событие, используя TouchableWithoutFeedback.Это мой код.

class AlbumList extends React.Component {

    constructor(props)
    {
        super(props)
        this.state = {
            displayList : true
        }
    }
    componentWillMount() {
        this.props.fetchAlbums();
    }

    albumPressed(album)
    {
        console.log("Touch event triggered")
    }

    renderAlbumItem = ({item: album}) => {
        return (
                <TouchableWithoutFeedback onPress={this.albumPressed.bind(this)}>
                    <Card>
                        <CardSection>
                            <Text>{album.artist}</Text>
                        </CardSection>
                        <CardSection>
                            <Text>{album.title}</Text>
                        </CardSection>
                    </Card>
                </TouchableWithoutFeedback>
            )
    }

    render() {
        let list;
        if (this.state.displayList) {
            list = <FlatList
                data={this.props.albums}
                renderItem={this.renderAlbumItem}
                keyExtractor={(album) => album.title}
            />
        }

        return (
            list
        )
    }
}

const mapStateToProps = state => {
    return state.albumList;
}

const mapDispatchToProps = (dispatch, ownProps) => {
    return bindActionCreators({
        fetchAlbums : AlbumListActions.fetchAlbums
    }, dispatch)
}

export default connect(mapStateToProps, mapDispatchToProps)(AlbumList);

Как видите, я реализую сенсорное событие в элементе списка.Но это не срабатывает, когда я нажимаю на карту на симуляторе.Зачем?Как я могу это исправить?

...