Сегодня я столкнулся с очень странной вещью
В моем методе рендеринга для моего реагирующего натива есть 3 переменные (я использую PureComponent
класс)
render() {
const { clampedScroll } = this.state;
const navbarTranslate = clampedScroll.interpolate({
inputRange: [0, HEADER_MIN_HEIGHT],
outputRange: [0, -HEADER_MIN_HEIGHT],
extrapolate: "clamp",
});
const navbarOpacity = clampedScroll.interpolate({
inputRange: [0, HEADER_MIN_HEIGHT],
outputRange: [1, 0],
extrapolate: "clamp",
});
const randomWorkout = [
{
title: "Abs Workout",
length: "25-30 Minutes",
},
{
title: "Chest Workout",
length: "50 Minutes",
},
{
title: "Full Body Workout",
length: "40 Minutes",
},
];
return (
<View style={{ flex: 1 }}>
<Animated.View
style={[
styles.navbar,
{ transform: [{ translateY: navbarTranslate }] },
]}
>
<Animated.View
style={[styles.title, { opacity: navbarOpacity }]}
>
<Toolbar />
</Animated.View>
</Animated.View>
<Container>
<Content>
{randomWorkout.map((value, index) => (
<Card>
<CardItem>
<Left>
<Thumbnail
source={Config.bannerImage}
/>
<Body>
<Text>{value.title}</Text>
<Text note>{value.length}</Text>
</Body>
</Left>
</CardItem>
</Card>
))}
</Content>
</Container>
С этим кодом Я получил неопределенный метод карты от randomWorkout.
Что я пытался сделать: перевести его в состояние, затем использовать this.state.randomWorkout.map()
, тогда он работает. Я что-то здесь упускаю?
Пожалуйста, будьте добры, я только что научился реагировать уже пару месяцев. Я могу двигаться дальше, потому что это всего лишь пародия, и данные все равно будут извлекаться с помощью API в избыточном коде. Но мне нужно знать, что не так в концепции.
Спасибо!
this.state = {
randomWorkout: [
{
title: "Abs Workout",
length: "25-30 Minutes",
},
{
title: "Chest Workout",
length: "50 Minutes",
},
{
title: "Full Body Workout",
length: "40 Minutes",
},
],
};