reactjs - React 简单状态管理
问题描述
我有一个状态很小的简单组件。我想要一个单击按钮以将该状态更改为其他状态。现在我看到一个意外的令牌错误,不太明白为什么。
下面是代码:
// Component to practice simple state mgmt
import React from 'react'
class Stateful extends React.Component{
state = {
flag: true,
text: "I am simple text"
}
render() {
return(
<div>
<h2>Small State example</h2>
<p>{this.state.text}</p>
<button onClick={
this.setState(
prevState=>({
flag: !prevState.flag,
text: prevState.text.toUpperCase()
})
}>Click to change state</button>
</div>
)
}
}
export default Stateful
解决方案
您没有为单击事件分配处理程序。您直接调用setState
这是不好的,因为您在render
方法中并且状态更改会导致重新渲染,从而有效地创建无限循环。
您还缺少一个)
所以使用
<button onClick={()=>
this.setState(
prevState=>({
flag: !prevState.flag,
text: prevState.text.toUpperCase()
}))
}>Click to change state</button>
推荐阅读
- python - 在数据集中查找 NaN 和 Infinity 值
- node.js - 用于约会/聊天应用程序的 MongoDB 聚合管道
- node.js - 为什么“npm install”在全新的 NodeJS 安装中寻找一个不存在的文件(package.json)?
- python - 如何在python中解析二进制文件
- phoenix-framework - LiveView 在控制台中不为 CID 错误抛出任何组件
- php - PHP 代码在 Wordpress 插件中不起作用
- crystal-reports - 基于公式的记录的多个副本
- php - 使用 preg_match 获取字符串中的 json 格式
- sql - WHERE NOT EXISTS 条款仅部分起作用
- scala - 如何处理火花中缺少的嵌套字段?