javascript - 如何根据 bool 值在反应应用程序中呈现信息?
问题描述
我对反应和 js 很陌生,所以我在布尔逻辑方面遇到了麻烦。
所以我有一个函数 Profile,其中包含两个 const 方法,每个方法都返回不同的信息。
function Profile(props) {
const returnNormalProfile()
const returnEditableProfile()
然后我有这个根据页面返回每个常量
if (existsCookie) {
if(isInEditMode){
return(
<div>
{returnNormalProfile()}
</div>
)
}else{
return(
<div>
{returnEditableProfile()}
</div>
)
}
} return NotLoggedIn
}
问:如何设置一个布尔变量,例如“isInEditMode”,然后根据它是否为真返回页面。
当前问题:我尝试执行 var isInEditMode = false 然后执行返回但不起作用。
当前功能设置为页面顶部有一个按钮,例如在每个页面中
<form onSubmit={(b) => handleEdit(b)} style={{ textAlign: 'center' }}>
<input type="submit" value="Done" />
</form>
因此,当我返回 returnNormalProfile 时,它会调用此代码
const handleEdit = () => {
isInEditMode = true
}
我能做些什么来完成这项工作?我见过人们使用 const [editMode, setEditMode] = useState(false)。但是,我不明白如何以这种方式使用它。
解决方案
你必须使用状态。isInEditMode
必须是一个反应状态,当改变时会导致重新渲染并根据其值返回相应的 UI。使用声明isInEditMode
为状态useState
:
const [isInEditMode,setIsInEditMode] = useState(false)
然后更新isInEditMode
:
const handleEdit = () => {
setIsInEditMode(true)
}
推荐阅读
- python - 如何成功地将 docker 镜像作为容器运行
- css - Laravel Mix - 浏览器开发工具中的重复 CSS(Sass 到 CSS)
- kubernetes - 如何在 k8s cron 作业中指定 cron 时区?
- arrays - 在默认类型和 C 互操作类型之间转换 Fortran 字符和逻辑数组
- reactjs - 语义用户界面图标(来自很棒的字体)没有出现在服务器反应+打字稿+ webpack上
- javascript - html ul li 滑动条点击动态改变选择
- python - 根据日期时间列将 1 行拆分为多行每小时数据
- prometheus - 计算普罗米修斯直方图中给定范围内每个桶的观察值
- dart - 级联如何修改原始对象?
- jsf - primefaces 更新在一页上失败