【发布时间】:2020-03-10 12:38:56
【问题描述】:
这很有趣。我没有收到任何错误,但来自 GraphQL API 的数据没有被渲染到 FlatList 中。我在 UsersScreen 中看到的只是 Text 组件。我之前遇到过错误,因为我的数据是一个对象而不是数组,但即使在将我的对象作为数组传递之后,FlatList 也无法识别数据
import { API, graphqlOperation } from 'aws-amplify'
import { Text, View, FlatList } from 'react-native';
import { ListItem } from 'react-native-elements';
const listUsers = `query listUsers {
listUsers {
username
}
}`;
export default function UsersScreen() {
const [allUsers, setAllUsers] = useState([]);
listQuery = async () => {
const allUsers = await API.graphql(graphqlOperation(listUsers));
setAllUsers(allUsers);
console.log(JSON.stringify(listUsers, null, 2));
};
keyExtractor = (_item, index) => index.toString()
renderItem = ({ item }) => (
<ListItem
title={item.username}
/>
)
return(
<View>
<Text>All Users</Text>
<FlatList
keyExtractor={keyExtractor}
data={allUsers}
renderItem={renderItem}
/>
</View>
);
}
【问题讨论】:
-
你的所有用户数据是什么?
-
allUsers 是状态变量,setAllUsers 是方法。 ListUsers 是数据的名称。
标签: reactjs react-native graphql