Javascript React js分页-从数组中删除空值
我正在尝试创建分页逻辑,当您单击最后一个索引时,它会更改页码 例如 如果用户单击5,则应更改为Javascript React js分页-从数组中删除空值,javascript,reactjs,Javascript,Reactjs,我正在尝试创建分页逻辑,当您单击最后一个索引时,它会更改页码 例如 如果用户单击5,则应更改为 2 3 4 5 6 等等 我设法做到了这一点,但是我将第一个元素赋值为null,因此我的数组变得越来越大,因为我没有删除任何元素 我想删除数组中的所有空值,并尝试使用带有下划线的各种方法:\u wihout、\u reject,但它总是给我一个错误,即\u未定义 这是该特定代码的片段 handleClick(event) { this.setState({
2 3 4 5 6
等等
我设法做到了这一点,但是我将第一个元素赋值为null,因此我的数组变得越来越大,因为我没有删除任何元素
我想删除数组中的所有空值,并尝试使用带有下划线的各种方法:\u wihout、\u reject
,但它总是给我一个错误,即\u未定义
这是该特定代码的片段
handleClick(event) {
this.setState({
currentPage: Number(event.target.id),
})
if (this.state.currentPage === this.state.pageNumbers[this.state.pageNumbers.length-1]) {
this.state.pageNumbers.push(this.state.pageNumbers.length + 1);
this.state.pageNumbers[this.state.startIndex] = null;
this.state.startIndex++;
this.state.pageNumbers._.without(array, null);
// delete null values
}
}
首先,setState
方法是异步的。您必须记住这一点,并使用setState(state,callback)
中的第二个参数来获取新的状态值。e、 g
this.setState({
currentPage: Number(event.target.id),
}, () => {
if (this.state.currentPage === this.state.pageNumbers[this.state.pageNumbers.length - 1]) {}
// and so on
})
要过滤出null
值,无需使用第三方库。您可以使用Array#filter
来实现它。此外,您不应直接使用this.state.xy=yz
设置状态字段
要操作状态变量,最好创建一个新的副本,然后使用setState
将其赋值。沿着这一点:
const pageNumbers = Object.assign({}, this.state.pageNumbers); // copy
pageNumbers[this.state.startIndex] = null;
this.setState({
pageNumbers: pageNumbers.filter(noNull => noNull),
startIndex: this.state.startIndex + 1
});
const pageNumbers = Object.assign({}, this.state.pageNumbers); // copy
pageNumbers[this.state.startIndex] = null;
this.setState({
pageNumbers: pageNumbers.filter(noNull => noNull),
startIndex: this.state.startIndex + 1
});