react-native FlatList undefined 不是一个对象(评估“props.getItem”)
2021-11-11
2218
我正在构建一个 React Native 应用,但在使用 FlatList 时遇到了问题。我想问题可能出在我尝试实现它的方式上,所以我使用了 https://reactnative.dev/docs/flatlist 中的示例代码,并尝试单独运行它。
无论我如何尝试,我都会收到错误:
undefined 不是对象(评估“props.getItem”)
这是从 FlatList.js 第 450 行生成的。
该文件中的第 449 行和第 450 行是:
_checkProps(props: Props<ItemT>) {
const {
这是来自与 React Native 捆绑在一起的 FlatList.js。
我使用的是 React Native 0.65.1。
这是我尝试运行的代码,它给了我错误:
import React from 'react';
import {
SafeAreaView,
View,
FlatList,
StyleSheet,
Text,
StatusBar,
} from 'react-native';
const DATA = [
{
id: 'bd7acbea-c1b1-46c2-aed5-3ad53abb28ba',
title: 'First Item',
},
{
id: '3ac68afc-c605-48d3-a4f8-fbd91aa97f63',
title: 'Second Item',
},
{
id: '58694a0f-3da1-471f-bd96-145571e29d72',
title: 'Third Item',
},
];
const Item = ({title}) => (
<View style={styles.item}>
<Text style={styles.title}>{title}</Text>
</View>
);
const ModalTrackSleep = () => {
const renderItem = ({item}) => <Item title={item.title} />;
return (
<SafeAreaView style={styles.container}>
<FlatList
data={DATA}
renderItem={renderItem}
keyExtractor={item => item.id}
/>
</SafeAreaView>
);
};
const styles = StyleSheet.create({
container: {
flex: 1,
marginTop: StatusBar.currentHeight || 0,
},
item: {
backgroundColor: '#f9c2ff',
padding: 20,
marginVertical: 8,
marginHorizontal: 16,
},
title: {
fontSize: 32,
},
});
export default ModalTrackSleep;
1个回答
我必须从我的 babel.config.js 中删除
'@babel/plugin-proposal-private-methods'、'@babel/plugin-proposal-class-properties'
然后 FlatList 才能再次工作。奇怪的是,FlatList 以前可以与这些 babel 插件一起使用。在添加和删除 react-native-geolocation 模块后,这个问题就开始出现了。我还必须重新做我的类中的私有方法和属性,这很不幸。
d36williams
2021-12-08