【发布时间】:2020-11-24 05:34:20
【问题描述】:
我目前在我的 React Native 项目中有一个 FlatList,用于呈现来自 nodejs 后端的帖子。我已将分页应用到我的后端,当我在邮递员上测试它时它正在工作。我的问题是当我在模拟器上测试我的应用程序时,当我到达第 0 页的末尾时,第 1 页没有加载。
这是我的平面列表:
<FlatList
data={posts} // to have all the data
keyExtractor={(post) => post.id.toString()}
renderItem={({ item }) => (
<PostCard
title={item.title}
subTitle={item.subTitle}
/>
)}
onEndReached={onScrollHandler}
onEndThreshold={0}
/>
const { data: posts, error, loading, request: loadPosts } = useApi(
postsApi.getPosts
);
useEffect(() => {
loadPosts();
}, []);
const[page,setPage]=useState(0);
const[profiles,setProfiles]=useState([]);
const fetchRecords=(page)=>{
const newRecords = []
for(var i = page * 10, il = i + 10; i < il && i < posts.length; i++){
newRecords.push(posts[i]);
}
setProfiles(...profiles, ...newRecords)
}
const onScrollHandler =()=>{
setPage(page+1);
fetchRecords(page)
}
这是我的 nodeJS 后端:
router.get("/",
async (req, res) => {
const getPagination = (page, size) => {
const limit = size ? +size : 10;
const offset = page ? page * limit : 0;
return { limit, offset };
};
const { page, size } = req.query;
const { limit, offset } = getPagination(page, size);
const posts = await Post.findAll({
limit,offset,
我的路由是 /posts,我在后端的 index.js 中声明。
在我的后端应用分页之前,当我以前在前端执行 console.log(posts) 时,我曾经获取我所有的帖子,但是当我在执行 console.log(posts) 时应用分页后,我只得到帖子第一页。
【问题讨论】:
标签: node.js react-native