【发布时间】:2018-12-01 16:54:48
【问题描述】:
我正在开发一个简单的 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);
如您所见,我正在列表项上实现触摸事件。但是当我在模拟器上点击卡片时它根本没有触发。为什么?我该如何解决?
【问题讨论】:
-
代码没有问题。是否有任何错误或警告?
-
您是否处于调试模式?你没有在控制台中看到任何东西吗?
-
我改为显示警报。未触发。如果我使用 TouchableHighlight,它可以工作。
-
TouchableWithoutFeedback 很糟糕,IMO。有时会无缘无故地不起作用,不使用与其他可触摸对象相同的 API。无缘无故需要单个视图作为孩子,不支持绝对定位。比如,为什么?
标签: react-native touchablewithoutfeedback