import React from 'react';
import { FlatList, View, Image } from 'react-native';

const Slider = () => {
  const images = [
    {
      source:
        'https://cdn.pixabay.com/photo/2015/10/29/14/38/web-1012467_1280.jpg',
      id: 1,
    },
    {
      source:
        'https://cdn.pixabay.com/photo/2015/08/27/09/22/banner-909710_1280.jpg',
      id: 2,
    },
    {
      source:
        'https://cdn.pixabay.com/photo/2016/03/27/18/52/flower-1283602_1280.jpg',
      id: 3,
    },
  ];

  return (
    <View style={{ flex: 1 }}>
      <FlatList
        pagingEnabled
        horizontal={true}
        contentContainerStyle={{
          flex: 1,
          paddingTop: '5%',
        }}
        data={images}
        renderItem={({ item }) => {
          return (
            <View key={item.id} style={{ padding: 2 }}>
              <View style={{ width: '100%', height: 120 }}>
                <Image
                  source={{ uri: item.source }}
                  style={{ width: '100%', height: 120 }}
                />
              </View>
            </View>
          );
        }}
        keyExtractor={(item) => {
          return item.id.toString();
        }}
        showsHorizontalScrollIndicator={false}
      />
    </View>
  );
};

export default Slider;

推荐答案

判断此固定代码

export default function App() {
  const images = [
    {
      source:
        'https://cdn.pixabay.com/photo/2015/10/29/14/38/web-1012467_1280.jpg',
      id: 1,
    },
    {
      source:
        'https://cdn.pixabay.com/photo/2015/08/27/09/22/banner-909710_1280.jpg',
      id: 2,
    },
    {
      source:
        'https://cdn.pixabay.com/photo/2016/03/27/18/52/flower-1283602_1280.jpg',
      id: 3,
    },
  ];

  return (
    <View style={{ flex: 1 }}>
      <FlatList
        pagingEnabled
        keyExtractor={(images) => {
          return images.id;
        }}
        showsHorizontalScrollIndicator={false}
        horizontal={true}
        contentContainerStyle={{ flex: 1, paddingTop: '5%' }}
        data={images}
        renderItem={({ item }) => {
          return (
            <View key={item.id} style={{ padding: 12, backgroundColor: 'red' }}>
              <View style={{ width: 100, height: 120 }}>
                <Image
                  source={{ uri: item.source }}
                  style={{ width: '100%', height: 120 }}
                />
              </View>
            </View>
          );
        }}
      />
    </View>
  );
}

React-native相关问答推荐

如何在EXPO路由中重置导航

react 本机函数不通过usContext触发

ReactNative如何在填充编辑表单 timeshift 除按钮禁用状态

单击时更改ToucheableOpacity colored颜色 不起作用

文本输入提示

React Native 组件中两次使用map的问题

TypeError:未定义不是对象(判断'theme.spacing [radius]')

react-native StyleSheet 属性和选项列表

如何在react-navigation 中将props传递给screens/components

react-native 中 android 和 iOS 的图像大小

try 添加包时出现错误duplicate entry:com/google/android/gms/internal/zzble.class

SyntaxError: const 声明中缺少初始化程序

React-Native: measure测量一个视图

背景图像在react中不起作用

React Native Android 文本组件额外填充

如何将props传递给 React Navigation 导航器中的组件?

Unexpected token on "export default const"

如何在react-native中显示toast消息

INSTALL_FAILED_INSUFFICIENT_STORAGE 运行 npm run android 命令时出错

zoom 到指定的标记 react-native-maps