javascript - 如何实现“显示更多”按钮?
问题描述
我想实现按钮行为显示更多。
当我单击按钮时,必须在不重新启动的情况下加载新对象。
我会const [data, setData] = useState(users);
初始化前 10 个用户。
当我按下按钮时,这个数组data
中,我添加了以下 10 个用户
var users = response.data;
for (var i=0; i < users.length; i++) {
data.push(users[i]);
}
setData(data);
但是浏览器中没有呈现任何内容。
怎么做正确?
const Cards = ({users, bottomUrl }) => {
const [data, setData] = useState(users);
const handleSubmit = e => {
e.preventDefault();
const page = bottomUrl.slice(-1);
const axios = require('axios');
const url = '/users';
axios.get(url, {
params: { page: page }
}, {headers: {'Content-Type': 'application/json'}})
.then(function (response) {
var users = response.data;
for (var i=0; i < users.length; i++) {
data.push(users[i]);
}
setData(data);
})
.catch(function (error) {
console.log(error);
})
.then(function () {
// always executed
});
};
return (
<div>
<div className="users-list">
{data.map((element, elIndex) => (
<UserCard
key={elIndex}
lastName={element.lastName}
firstName={element.firstName}
description={element.description}
/>
))}
</div>
<div className="users-page-button-container">
<a className="button" onClick={handleSubmit} href={bottomUrl}>Show more</a>
</div>
</div>
)
};
解决方案
您正在推动状态对象data
。您必须使用中间变量并将其传递给setData
推荐阅读
- c++ - 接口声明中的 C++ 实现代码
- django - 如何在 django 中使用我的模态显示博客文章内容并删除它?
- function - Dart `void` vs `Function` vs `void Function()`
- javascript - 在 IntersectionObserver 中操作数据对象的问题
- python-3.x - 如何对具有多个匹配值的列表中的元组进行分组
- erlang - 如何获取“gen_server”的本地名称?
- azure - 从不同帐户将 Azure DevOps 存储库连接到另一个 Azure DevOps 存储库
- javascript - 如何在 Angular http 请求中设置重复的参数名称
- php - 弹出框按钮 - Css(颜色)
- python - 查找长度最大的字符串并将其存储在列表中的问题