reactjs - 无法弄清楚为什么 onClick 没有更新状态
问题描述
我知道围绕这个问题有类似的问题,但我无法使用这些答案来让我的代码正常工作。
每次单击按钮时,我都想将 nextPage 的状态增加 1。
我尝试删除 handleClick 方法中的返回。我还尝试添加一个变量来保存更新的 num 并将其作为 state 的值传递,就像这样
handleClick = (num) => {
let x = num++
return this.setState({
nextPage: x
})
}
我没有尝试似乎更新状态..这是我当前的代码如下:
import React, { Component } from 'react'
class Pages extends Component {
constructor(props) {
super(props)
this.state = {
nextPage: 1
}
}
handleClick = (num) => {
return this.setState({
nextPage: num++
})
}
render() {
return (
<div className='pageNav'>
<button className="nextButton" onClick={() => this.handleClick}>Next </button>
</div>
)
}
}
export default Pages
解决方案
handleClick
当您按下按钮时,您没有调用。
onClick={() => this.handleClick}
相当于
onClick={() => {
return this.handleClick
}}
这与
onClick={() => {
return this.handleClick(/* do you need to pass a number here? */)
}}
或者
onClick={this.handleClick}
推荐阅读
- celery - '*reply.celery.pidbox' 代表什么
- flutter - Flutter FutureBuilder返回Null错误触发
- javascript - 在谷歌地图中如何限制印度单个城市的自动搜索
- html - 使用 html 和 css 的粗体圆形和彩色列出的项目
- spring - Spring Cloud Launcher 自定义应用程序
- angularjs - 我已经在 angular 6 和 spring mvc 之间进行了集成。angular 是客户端进程,spring mvc 是服务器端工作
- android - 如何从 Android 应用程序访问文本文件?
- android-studio - 清单合并失败:
- sql-server - 如何使用脚本在 Docker 中创建数据库和用户?
- google-cloud-platform - 不能从 Google Cloud Platform Stackdriver 日志中删除审核日志吗?