#javascript #react-native #onpress
#javascript #react-native #onpress
Вопрос:
У меня есть изображения, поступающие из переменной массива в <Image>
внутри <View>
, которые отображаются в пространстве между моей навигацией. Везде, где я помещаю свой журнал консоли, он регистрирует номер индекса каждого изображения при загрузке, и я не могу нажать на изображение, чтобы запустить журнал консоли.
Я переместил onPress={console.log(index)} в возможные области, надеясь, что это сделает изображения интерактивными.
import React, { Component } from 'react';
import { View, Dimensions, Image } from 'react-native';
var images = [
require('../assets/IMG-0028.jpeg'),
require('../assets/IMG-0048.jpeg'),
require('../assets/IMG-0064.jpeg'),
require('../assets/IMG-0089.jpeg'),
require('../assets/IMG-0119.jpeg'),
require('../assets/IMG-0151.jpeg'),
require('../assets/IMG-0152.jpeg'),
require('../assets/IMG-0153.jpeg'),
require('../assets/IMG-0154.jpeg'),
require('../assets/IMG-0155.jpeg'),
require('../assets/IMG-0184.jpeg'),
require('../assets/IMG-0221.jpeg'),
require('../assets/IMG-0268.jpeg'),
require('../assets/IMG-0309.jpeg'),
require('../assets/IMG-0320.jpeg'),
require('../assets/IMG-0474.jpeg'),
require('../assets/IMG-0707.jpeg'),
require('../assets/IMG-0860.jpeg')
];
var { width, height } = Dimensions.get('window');
class CardComponent extends Component {
renderHome = () => {
return images.map((image, index) => {
return (
<View
key={index}
style={[
{ width: width / 3 },
{ height: height / 3 },
{ marginBottom: 2 },
index % 3 !== 0 ? { paddingLeft: 2 } : { paddingLeft: 0 }
]}
>
<Image
style={{ flex: 1, width: undefined, height: undefined }}
source={image}
onPress={console.log(index)}
/>
</View>
);
});
};
render() {
return (
<View style={{ flexDirection: 'row', flexWrap: 'wrap' }}>
{this.renderHome()}
</View>
);
}
}
export default CardComponent;
Я ожидаю нажать на изображение и заставить консоль регистрировать индекс изображения, чтобы я знал, что это работает.
но.. Вообще ничего не происходит.
Комментарии:
1. Атрибуты события ожидают ссылку на функцию, однако вы немедленно выполняете функцию, поэтому атрибут просто получает возвращаемое значение, неопределенное в случае log() . Вы, вероятно, имели в виду использовать там функцию стрелки
onPress={()=>console.log()}
2. Это делает так, что он не запускается сразу, спасибо. Похоже, что это вообще не срабатывает, независимо от того, что я нажимаю.
3. Хорошо, я смог заставить каждое изображение мигать из-за осязаемой непрозрачности по всему виду.
4. Хорошо, я выполнил все, что намеревался выполнить с этим вопросом. Спасибо за помощь.