【问题标题】:How can you use a flatlist to render components in react native如何使用平面列表在 React Native 中渲染组件
【发布时间】:2021-07-07 16:04:10
【问题描述】:

我目前正在创建一个入门屏幕,它只是几个组件,通过单击按钮线性导航到下一个组件。 但是我已经看到我可以使用平面列表来更好地设置样式。是否可以将组件作为数据属性传递给平面列表?

     import React from 'react';
    import { SafeAreaView, View, FlatList, StyleSheet, Text, StatusBar } from 'react-native';
   import DateOfBirth, Name, ProfilePicture from ‘./components’
    
    const DATA = [
      DateOfBirth, Name, ProfilePicture
    ];
   

 return (
        <SafeAreaView style={styles.container}>
          <FlatList
            data={DATA}
          />
        </SafeAreaView>
      );
    }

例如,这可能吗?我知道有一个 renderItems 道具似乎做了类似的事情,但似乎将数据与我真正想要的项目相匹配。还有更好的吗? 或者,如果有任何更好的库可用于 React Native 中的入职选项,那就太好了。我看到的大部分内容类似于平面列表,并且只添加了一个带有文本而不是输入等的数组

【问题讨论】:

    标签: arrays reactjs react-native react-native-flatlist flatlist


    【解决方案1】:

    您还需要设置 renderItem 属性。设置&lt;Item /&gt; 组件的样式以满足您的要求。

    const App = () => {
      const renderItem = ({ item }) => (
        <Item title={item.title} />
      );
    
      return (
        <SafeAreaView style={styles.container}>
          <FlatList
            data={DATA}
            renderItem={renderItem}
            keyExtractor={item => item.id}
          />
        </SafeAreaView>
      );
    };
    

    【讨论】:

      【解决方案2】:

      import React from 'react';
      import {View,Text,StyleSheet,FlatList} from 'react-native';
      const Demo = () => {
        let ary = [
        {
           id:1,
           name:'jahnavi',
        },
         {
           id:2,
           name:'yash',
        },
         {
           id:3,
           name:'aniket',
        }],
        
      
      
        return (
          <SafeAreaView style={styles.container}>
            <FlatList
             keyExtractor={item => item.id}
              data={ary}
              renderItem={({item}) => (<Item title={item.name}/>
              );
        }
             
            />
          </SafeAreaView>
        );
      };
      export default Demo;

      【讨论】:

        【解决方案3】:

        不明白您为什么要尝试处理您的组件。

        要使用 Flatlist,您需要传递数据,然后使用您的组件。

        在此处了解更多信息https://reactnative.dev/docs/flatlist

        例子

        import React from 'react';
        import { SafeAreaView, View, FlatList, StyleSheet, Text, StatusBar } from 'react-native';
        import DateOfBirth, Name, ProfilePicture from ‘./components’
            
        const DATA = [
            {
                name: "Jhon Doe",
                dateOfBirth: "01/01/1980",
                profilePicture: "https://url.com/profile.jpg"
            },
            {
                name: "Jane Doe",
                dateOfBirth: "02/01/1980",
                profilePicture: "https://url.com/profile2.jpg"
            }
        ];
        
        const App = () => {
            function renderClient ({client}){
                return(
                    <View key={client.index}>
                        <Name name={client.item.name} />
                    </View>
                )
            }
        
            return (
                <SafeAreaView style={styles.container}>
                    <FlatList
                        data={DATA}
                        keyExtractor={(item, index) => index.toString()}
                        renderItem={renderClient}
                    />
                </SafeAreaView>
                );
            }
        }
        

        【讨论】:

        • 因此,如果我的组件只是输入,则说 DateOfBirth 只是一个日期选择器。我可以将输入作为道具传递给 DateOfBirth 组件,然后将其传递给 flatlist 组件数据吗?我对 react native 还很陌生,我看到过创建水平滚动视图并以这种方式添加组件的选项。因为我的最终目标是,一旦我拥有来自组件的所有数据,然后使用按钮将其发布到最后一页上的 api
        • 我认为你需要了解更多关于 react 的知识,然后再进一步。有很多免费的在线课程
        猜你喜欢
        • 1970-01-01
        • 2020-01-04
        • 1970-01-01
        • 2023-04-04
        • 2018-12-24
        • 1970-01-01
        • 2020-10-04
        • 1970-01-01
        • 2021-01-02
        相关资源
        最近更新 更多