从数组中加载前 10 个项目,然后在 React 中加载下 10 个项目
Load first 10 items from array and then next 10 in React
我正在做 React 项目,我有一个项目数组列表。我想在初始渲染时加载前 10 个项目,并且需要在用户单击此按钮时在底部显示一个按钮名称(更多记录)我想显示数组中的下 10 个项目,但我也想显示以前的数组项目。意味着如果用户单击(更多记录)我想显示 20 条记录,当用户再次单击按钮时我想显示 10 个下一个项目,这将等于 30(以前的 20 个和新的 10 个)。我是新手,有人可以帮我解决这个问题吗?
谢谢。
数据
[
{
"userId": 1,
"id": 1,
"title": "delectus aut autem",
"completed": false
},
{
"userId": 1,
"id": 2,
"title": "quis ut nam facilis et officia qui",
"completed": false
},
{
"userId": 1,
"id": 3,
"title": "fugiat veniam minus",
"completed": false
},
{
"userId": 1,
"id": 4,
"title": "et porro tempora",
"completed": true
},
{
"userId": 1,
"id": 5,
"title": "laboriosam mollitia et enim quasi adipisci quia provident illum",
"completed": false
},
{
"userId": 1,
"id": 6,
"title": "qui ullam ratione quibusdam voluptatem quia omnis",
"completed": false
},
{
"userId": 1,
"id": 7,
"title": "illo expedita consequatur quia in",
"completed": false
},
{
"userId": 1,
"id": 8,
"title": "quo adipisci enim quam ut ab",
"completed": true
},
{
"userId": 1,
"id": 9,
"title": "molestiae perspiciatis ipsa",
"completed": false
},
{
"userId": 1,
"id": 10,
"title": "illo est ratione doloremque quia maiores aut",
"completed": true
},
{
"userId": 1,
"id": 11,
"title": "vero rerum temporibus dolor",
"completed": true
},
{
"userId": 1,
"id": 12,
"title": "ipsa repellendus fugit nisi",
"completed": true
},
{
"userId": 1,
"id": 13,
"title": "et doloremque nulla",
"completed": false
},
{
"userId": 1,
"id": 14,
"title": "repellendus sunt dolores architecto voluptatum",
"completed": true
},
{
"userId": 1,
"id": 15,
"title": "ab voluptatum amet voluptas",
"completed": true
},
{
"userId": 1,
"id": 16,
"title": "accusamus eos facilis sint et aut voluptatem",
"completed": true
},
{
"userId": 1,
"id": 17,
"title": "quo laboriosam deleniti aut qui",
"completed": true
},
{
"userId": 1,
"id": 18,
"title": "dolorum est consequatur ea mollitia in culpa",
"completed": false
},
{
"userId": 1,
"id": 19,
"title": "molestiae ipsa aut voluptatibus pariatur dolor nihil",
"completed": true
},
{
"userId": 1,
"id": 20,
"title": "ullam nobis libero sapiente ad optio sint",
"completed": true
},
{
"userId": 2,
"id": 21,
"title": "suscipit repellat esse quibusdam voluptatem incidunt",
"completed": false
},
{
"userId": 2,
"id": 22,
"title": "distinctio vitae autem nihil ut molestias quo",
"completed": true
},
{
"userId": 2,
"id": 23,
"title": "et itaque necessitatibus maxime molestiae qui quas velit",
"completed": false
},
{
"userId": 2,
"id": 24,
"title": "adipisci non ad dicta qui amet quaerat doloribus ea",
"completed": false
},
{
"userId": 2,
"id": 25,
"title": "voluptas quo tenetur perspiciatis explicabo natus",
"completed": true
},
{
"userId": 2,
"id": 26,
"title": "aliquam aut quasi",
"completed": true
},
{
"userId": 2,
"id": 27,
"title": "veritatis pariatur delectus",
"completed": true
},
{
"userId": 2,
"id": 28,
"title": "nesciunt totam sit blanditiis sit",
"completed": false
},
{
"userId": 2,
"id": 29,
"title": "laborum aut in quam",
"completed": false
},
{
"userId": 2,
"id": 30,
"title": "nemo perspiciatis repellat ut dolor libero commodi blanditiis omnis",
"completed": true
},
{
"userId": 2,
"id": 31,
"title": "repudiandae totam in est sint facere fuga",
"completed": false
},
{
"userId": 2,
"id": 32,
"title": "earum doloribus ea doloremque quis",
"completed": false
},
{
"userId": 2,
"id": 33,
"title": "sint sit aut vero",
"completed": false
},
{
"userId": 2,
"id": 34,
"title": "porro aut necessitatibus eaque distinctio",
"completed": false
},
{
"userId": 2,
"id": 35,
"title": "repellendus veritatis molestias dicta incidunt",
"completed": true
},
{
"userId": 2,
"id": 36,
"title": "excepturi deleniti adipisci voluptatem et neque optio illum ad",
"completed": true
},
{
"userId": 2,
"id": 37,
"title": "sunt cum tempora",
"completed": false
},
{
"userId": 2,
"id": 38,
"title": "totam quia non",
"completed": false
},
{
"userId": 2,
"id": 39,
"title": "doloremque quibusdam asperiores libero corrupti illum qui omnis",
"completed": false
},
{
"userId": 2,
"id": 40,
"title": "totam atque quo nesciunt",
"completed": true
},
{
"userId": 3,
"id": 41,
"title": "aliquid amet impedit consequatur aspernatur placeat eaque fugiat suscipit",
"completed": false
},
{
"userId": 3,
"id": 42,
"title": "rerum perferendis error quia ut eveniet",
"completed": false
},
{
"userId": 3,
"id": 43,
"title": "tempore ut sint quis recusandae",
"completed": true
},
{
"userId": 3,
"id": 44,
"title": "cum debitis quis accusamus doloremque ipsa natus sapiente omnis",
"completed": true
},
{
"userId": 3,
"id": 45,
"title": "velit soluta adipisci molestias reiciendis harum",
"completed": false
},
{
"userId": 3,
"id": 46,
"title": "vel voluptatem repellat nihil placeat corporis",
"completed": false
},
{
"userId": 3,
"id": 47,
"title": "nam qui rerum fugiat accusamus",
"completed": false
},
{
"userId": 3,
"id": 48,
"title": "sit reprehenderit omnis quia",
"completed": false
},
]
你可以这样做
const List = () => {
const [listItems, setListItems] = useState(10);
return (
<div>
{data.slice(0, listItems).map(rec => {
return <div>{rec.id}</div>
})}
<button onClick={() => setListItems(listItems + 10)} >Show more...</button>
</div>
);
}
数据就是你的数组。我创建了带有项目数的状态,默认为 10。当你按下按钮时,你将这个状态增加到 10
您可以查看它的外观here
const [more, setMore] = useState(10)
yourArray.map((data, i)=>{
if(i>more) return null
return (
<div>{data.value}</div>
)
})
<button onClick={()=> setMore(c=> c+10)}>More Data</button>
使用您的数据,您可以在组件安装时使用 useEffect() 将其设置为您的状态值,然后使用将状态设置为数组的第二部分的回调函数进行更新。要将数据分成两块,您可以使用 array.slice.
const Items = () => {
const data = [];
const firstTen = data.slice(0, 10);
const secondTen = data.slice(10, 20);
const [itemsToShow, setItemsToShow] = useState(firstTen);
const handleShowNextPage = () => setItemsToShow(secondTen);
return (
<div>
<div>{JSON.stringify(itemsToShow)}</div>
<button onClick={handleShowNextPage}>Show Next Page</button>
</div>
);
}
我正在做 React 项目,我有一个项目数组列表。我想在初始渲染时加载前 10 个项目,并且需要在用户单击此按钮时在底部显示一个按钮名称(更多记录)我想显示数组中的下 10 个项目,但我也想显示以前的数组项目。意味着如果用户单击(更多记录)我想显示 20 条记录,当用户再次单击按钮时我想显示 10 个下一个项目,这将等于 30(以前的 20 个和新的 10 个)。我是新手,有人可以帮我解决这个问题吗? 谢谢。
数据
[
{
"userId": 1,
"id": 1,
"title": "delectus aut autem",
"completed": false
},
{
"userId": 1,
"id": 2,
"title": "quis ut nam facilis et officia qui",
"completed": false
},
{
"userId": 1,
"id": 3,
"title": "fugiat veniam minus",
"completed": false
},
{
"userId": 1,
"id": 4,
"title": "et porro tempora",
"completed": true
},
{
"userId": 1,
"id": 5,
"title": "laboriosam mollitia et enim quasi adipisci quia provident illum",
"completed": false
},
{
"userId": 1,
"id": 6,
"title": "qui ullam ratione quibusdam voluptatem quia omnis",
"completed": false
},
{
"userId": 1,
"id": 7,
"title": "illo expedita consequatur quia in",
"completed": false
},
{
"userId": 1,
"id": 8,
"title": "quo adipisci enim quam ut ab",
"completed": true
},
{
"userId": 1,
"id": 9,
"title": "molestiae perspiciatis ipsa",
"completed": false
},
{
"userId": 1,
"id": 10,
"title": "illo est ratione doloremque quia maiores aut",
"completed": true
},
{
"userId": 1,
"id": 11,
"title": "vero rerum temporibus dolor",
"completed": true
},
{
"userId": 1,
"id": 12,
"title": "ipsa repellendus fugit nisi",
"completed": true
},
{
"userId": 1,
"id": 13,
"title": "et doloremque nulla",
"completed": false
},
{
"userId": 1,
"id": 14,
"title": "repellendus sunt dolores architecto voluptatum",
"completed": true
},
{
"userId": 1,
"id": 15,
"title": "ab voluptatum amet voluptas",
"completed": true
},
{
"userId": 1,
"id": 16,
"title": "accusamus eos facilis sint et aut voluptatem",
"completed": true
},
{
"userId": 1,
"id": 17,
"title": "quo laboriosam deleniti aut qui",
"completed": true
},
{
"userId": 1,
"id": 18,
"title": "dolorum est consequatur ea mollitia in culpa",
"completed": false
},
{
"userId": 1,
"id": 19,
"title": "molestiae ipsa aut voluptatibus pariatur dolor nihil",
"completed": true
},
{
"userId": 1,
"id": 20,
"title": "ullam nobis libero sapiente ad optio sint",
"completed": true
},
{
"userId": 2,
"id": 21,
"title": "suscipit repellat esse quibusdam voluptatem incidunt",
"completed": false
},
{
"userId": 2,
"id": 22,
"title": "distinctio vitae autem nihil ut molestias quo",
"completed": true
},
{
"userId": 2,
"id": 23,
"title": "et itaque necessitatibus maxime molestiae qui quas velit",
"completed": false
},
{
"userId": 2,
"id": 24,
"title": "adipisci non ad dicta qui amet quaerat doloribus ea",
"completed": false
},
{
"userId": 2,
"id": 25,
"title": "voluptas quo tenetur perspiciatis explicabo natus",
"completed": true
},
{
"userId": 2,
"id": 26,
"title": "aliquam aut quasi",
"completed": true
},
{
"userId": 2,
"id": 27,
"title": "veritatis pariatur delectus",
"completed": true
},
{
"userId": 2,
"id": 28,
"title": "nesciunt totam sit blanditiis sit",
"completed": false
},
{
"userId": 2,
"id": 29,
"title": "laborum aut in quam",
"completed": false
},
{
"userId": 2,
"id": 30,
"title": "nemo perspiciatis repellat ut dolor libero commodi blanditiis omnis",
"completed": true
},
{
"userId": 2,
"id": 31,
"title": "repudiandae totam in est sint facere fuga",
"completed": false
},
{
"userId": 2,
"id": 32,
"title": "earum doloribus ea doloremque quis",
"completed": false
},
{
"userId": 2,
"id": 33,
"title": "sint sit aut vero",
"completed": false
},
{
"userId": 2,
"id": 34,
"title": "porro aut necessitatibus eaque distinctio",
"completed": false
},
{
"userId": 2,
"id": 35,
"title": "repellendus veritatis molestias dicta incidunt",
"completed": true
},
{
"userId": 2,
"id": 36,
"title": "excepturi deleniti adipisci voluptatem et neque optio illum ad",
"completed": true
},
{
"userId": 2,
"id": 37,
"title": "sunt cum tempora",
"completed": false
},
{
"userId": 2,
"id": 38,
"title": "totam quia non",
"completed": false
},
{
"userId": 2,
"id": 39,
"title": "doloremque quibusdam asperiores libero corrupti illum qui omnis",
"completed": false
},
{
"userId": 2,
"id": 40,
"title": "totam atque quo nesciunt",
"completed": true
},
{
"userId": 3,
"id": 41,
"title": "aliquid amet impedit consequatur aspernatur placeat eaque fugiat suscipit",
"completed": false
},
{
"userId": 3,
"id": 42,
"title": "rerum perferendis error quia ut eveniet",
"completed": false
},
{
"userId": 3,
"id": 43,
"title": "tempore ut sint quis recusandae",
"completed": true
},
{
"userId": 3,
"id": 44,
"title": "cum debitis quis accusamus doloremque ipsa natus sapiente omnis",
"completed": true
},
{
"userId": 3,
"id": 45,
"title": "velit soluta adipisci molestias reiciendis harum",
"completed": false
},
{
"userId": 3,
"id": 46,
"title": "vel voluptatem repellat nihil placeat corporis",
"completed": false
},
{
"userId": 3,
"id": 47,
"title": "nam qui rerum fugiat accusamus",
"completed": false
},
{
"userId": 3,
"id": 48,
"title": "sit reprehenderit omnis quia",
"completed": false
},
]
你可以这样做
const List = () => {
const [listItems, setListItems] = useState(10);
return (
<div>
{data.slice(0, listItems).map(rec => {
return <div>{rec.id}</div>
})}
<button onClick={() => setListItems(listItems + 10)} >Show more...</button>
</div>
);
}
数据就是你的数组。我创建了带有项目数的状态,默认为 10。当你按下按钮时,你将这个状态增加到 10
您可以查看它的外观here
const [more, setMore] = useState(10)
yourArray.map((data, i)=>{
if(i>more) return null
return (
<div>{data.value}</div>
)
})
<button onClick={()=> setMore(c=> c+10)}>More Data</button>
使用您的数据,您可以在组件安装时使用 useEffect() 将其设置为您的状态值,然后使用将状态设置为数组的第二部分的回调函数进行更新。要将数据分成两块,您可以使用 array.slice.
const Items = () => {
const data = [];
const firstTen = data.slice(0, 10);
const secondTen = data.slice(10, 20);
const [itemsToShow, setItemsToShow] = useState(firstTen);
const handleShowNextPage = () => setItemsToShow(secondTen);
return (
<div>
<div>{JSON.stringify(itemsToShow)}</div>
<button onClick={handleShowNextPage}>Show Next Page</button>
</div>
);
}