Javascript React js分页-从数组中删除空值

Javascript React js分页-从数组中删除空值,javascript,reactjs,Javascript,Reactjs,我正在尝试创建分页逻辑,当您单击最后一个索引时,它会更改页码 例如 如果用户单击5,则应更改为 2 3 4 5 6 等等 我设法做到了这一点,但是我将第一个元素赋值为null,因此我的数组变得越来越大,因为我没有删除任何元素 我想删除数组中的所有空值,并尝试使用带有下划线的各种方法:\u wihout、\u reject,但它总是给我一个错误,即\u未定义 这是该特定代码的片段 handleClick(event) { this.setState({

我正在尝试创建分页逻辑,当您单击最后一个索引时,它会更改页码

例如

如果用户单击5,则应更改为

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
});