【发布时间】:2019-01-04 22:06:08
【问题描述】:
更大的问题是当我设置它不起作用的状态时。我试图在这里解决问题,但遗憾的是这与我的错误不完全相符。尽管如此,行为及其失败的方式与我的相同。
我有一个计数器在点击时应该更新,这应该会触发我的分页。但是第一次点击没有正确更新。由于计数器不会按原样递增,因此它会抛出下面的 pagination 函数。底部的小提琴将所有内容显示在一起。
这就是我想要的:https://jsfiddle.net/drumgod/n5u2wwjg/262413/ 一个按应递增的计数器。
那个小提琴有效,所以我的问题必须在代码中的其他地方。基本思路是这样的:
1.单击按钮将计数器增加 30
2.counter slices 数组分页
3.项目出现在页面上
问题是:
调用
pagination,计数器不会增加。pagination内部的逻辑已关闭。项目未显示在页面上。
示例代码:
//should add 30 to state each time but does not on first click
countBy30() {
this.setState((prevState => ({
counter: prevState.counter + 30
})))
return this.state.counter
}
//func to do pagination by slicing arr
paginate(arr) {
// calling here should add 30 but does not on click
let count = this.countBy30()
//slices up array - counter seems to screw up this slicing?
let sliceStart = count - 30
let sliceEnd = count
let chunk = arr.slice(sliceStart, sliceEnd)
return chunk
}
https://jsfiddle.net/drumgod/705t1oc8/55/
在单击按钮Next 30 时,数字确实会在渲染中增加,但在第二次单击之前它不会更改列表。这是因为 pagination 函数中的切片由于某种原因关闭了 30。
(由于小提琴很忙,请直接转到小提琴中的countBy30,因为我认为上面是有效的。)
【问题讨论】:
标签: reactjs