gpt4 book ai didi

ios - react native 。 TouchableOpacity 仅在用 2 根手指点击时有效

转载 作者:行者123 更新时间:2023-11-28 21:05:07 26 4
gpt4 key购买 nike

我正在通过 React-Native 和 native-base 运行我的应用程序,我遇到了组件 TouchableOpacity 的一些问题。

当我像这样编写组件时

<TouchableOpacity onPress={() => {this.onPress()}}>
<Text>Some text</Text>
</TouchableOpacity

当我用一根手指点击时,它完美无缺

但是当我这样运行时——我的代码:

renderList () {
return (
<List>
{this.state.data.map( ( restaurant, index ) => {
return (
<TouchableOpacity onPress={() => {
this.onPress();
}} key={index}>
<View style={styles.example}>
<ListItem>
<Thumbnail square size={80} source={{ uri: 'Image URL' }}/>
<Body>
<Text>{restaurant.title}</Text>
<Text note>{restaurant.shortDescription}</Text>
</Body>
</ListItem>
</View>
</TouchableOpacity>
);
} )}
</List>

);
}

它忽略了 1 次点击、2 次点击等,它仅在我用 2 根手指点击时有效。没有找到有关此问题的任何信息。可能有人知道如何解决这个问题?

谢谢

添加了完整代码:

import React, { Component } from 'react';
import {
Container,
Button,
Header,
Left,
Icon,
Body,
Right,
Text,
Content,
List,
ListItem,
Thumbnail
} from 'native-base';
import { StyleSheet, TouchableOpacity, View } from 'react-native';

export default class Restaurants extends Component {

constructor ( props ) {
super( props );
this.state = {
data: this.props.data
};
}

onPress () {
console.log( 'Hello' );
}

renderList () {
return (
<List>
{this.state.data.map( ( restaurant, index ) => {
return (
<TouchableOpacity onPress={() => {
this.onPress();
}} key={index}>
<View style={styles.example}>
<ListItem>
<Thumbnail square size={80} source={{ uri: 'Image URL' }}/>
<Body>
<Text>{restaurant.title}</Text>
<Text note>{restaurant.shortDescription}</Text>
</Body>
</ListItem>
</View>
</TouchableOpacity>
);
} )}
</List>

);
}

render () {
return (
<Container>
<Header style={styles.header}>
<Left>
<Button transparent>
<Icon style={styles.header_icon} name="arrow-back"/>
</Button>
</Left>
<Body>
<Text>Ресторанны</Text>
</Body>
<Right>
<Button transparent>
<Icon style={styles.header_icon} name="restaurant"/>
</Button>
</Right>
</Header>
<Content>
{this.renderList()}
</Content>
</Container>
);
}
}

const styles = StyleSheet.create( {
header: {
backgroundColor: '#606dff'
},
header_icon: {
color: 'black'
},
example: {
backgroundColor: 'red'
}
} );

最佳答案

正如我们所说,我会把它贴在这里,这样阅读和复制代码会更好。

试试这个:

renderList() {
return (
<List>
{
this.state.data.map( ( restaurant, index ) => {
return (
<ListItem>
<TouchableOpacity
onPress={() => {
this.onPress();
}}
key={index}
>
<View style={styles.example}>
<Thumbnail square size={80} source={{ uri: 'Image URL' }}/>
<Body>
<Text>{restaurant.title}</Text>
<Text note>{restaurant.shortDescription}</Text>
</Body>
</View>
</TouchableOpacity>
</ListItem>
);
});
}
</List>
);
}

我交换了<ListItem><TouchableOpacity>你写的方式可能有任何冲突。

让我知道它是否有效。

关于ios - react native 。 TouchableOpacity 仅在用 2 根手指点击时有效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46143528/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com