javascript - React js - 显示或隐藏 div
问题描述
我正在尝试使用 CSS 样式选项中的状态值在 Reactjs 中显示或隐藏 div - display 并且我正在使用带有钩子的函数。我有一个按钮,按钮下方是一个 div。当我单击按钮时,我想要隐藏或显示 div 中的内容,具体取决于它当前是显示还是隐藏。
这是我的基本测试代码
import React, { useState } from "react";
function hide() {
return (
<div>
<Mycomp />
</div>
);
}
function Mycomp() {
const [dp, setDp] = useState("none");
return (
<form>
<button
onClick={() => {
setDp("block");
}}
>
Test
</button>
<div style={{ display: dp }}>Test</div>
</form>
);
}
export default hide;
然后我在我的App.js
文件中使用这个隐藏组件。当我单击按钮时,分配了新状态,但随后页面重新呈现,并且几乎立即再次加载初始状态。如何确保保持新状态?最终,我将创建一个函数,如果 div 显示与否基于先前的状态。
解决方案
问题是按钮位于<form>
. 因此,单击该按钮将提交表单并刷新页面。
您需要在type="button"
您的<button>
import React, { useState } from "react";
import "./styles.css";
function Hide() {
return (
<div>
<Mycomp />
</div>
);
}
function Mycomp() {
const [dp, setDp] = useState("none");
return (
<form>
<button
type="button"
onClick={() => {
setDp("block");
}}
>
Test
</button>
<div style={{ display: dp }}>Test</div>
</form>
);
}
export default Hide;
推荐阅读
- anaconda - 我不能使用 anaconda 安装软件包
- java - 为什么我的程序只打印一个等级?
- java - 如何在 1 个测试类中使用相同的方法测试多个对象?
- powershell - PowerShell:将命令组合在一起,用于重定向输出
- java - 读取返回 StreamingResponseBody 作为响应的 API
- html - how do I compare textarea enter character
- python - tf 的示例。group_by_reducer?
- ios - 具有大型数据集的 NSPersistentContainer 和 NSFetchedResultsController
- javascript - 路由到 Angular 应用程序中的另一个组件后,外部脚本不会加载
- python-3.x - 估计器最终导出的克隆模型步骤中的尺寸不匹配