【发布时间】:2022-01-08 08:29:42
【问题描述】:
我是 React 和 Next.js 的新手,我正在创建一个时间线,时间线有彩色条,如果按下,页面会在下面显示一个 div,其中包含有关每个条的信息。
我设法使用 useState 钩子使下面的内容出现和消失,因此每个栏的内容不会堆叠,我使用的是动画标签“Section”,并且仅在我第一次按下任何栏时,内容是动画,其余部分静态显示,我想知道是否可以使用 useEffect 钩子之类的东西来重新渲染每个内容 div 以便每次单击每个栏时都会出现动画,也可以擦除最后加载的 div 所以不会堆栈在浏览器内存上,我希望我能解释一下我 2 天前开始使用 React,感谢您抽出宝贵时间。
简化代码示例:
//useState hook
const [content, setContent] = useState(null);
//Timeline section
<div>
<Bar1 onClick={() => setContent(BarContent_1)}/>
<Bar2 onClick={() => setContent(BarContent_2)}/>
</div>
//Content display
<div>
{content}
</div>
//Content of each bar, (<Section> div has the animation)
const BarContent_1 = () => {
return (
<Section>
Content of bar 1
</Section>
)
}
const BarContent_2 = () => {
return (
<Section>
Content of bar 2
</Section>
)
}
【问题讨论】:
-
你在使用数组对象吗?你
.map()那个数组在屏幕上显示数据对吗? -
您好,不,每个 Bar 对象都是从另一个组件导入的,其中每个 bar 都获取要在时间线部分设置的所有样式。还没有映射也没有数组,我想在开始减少代码之前弄清楚这个洞的想法!。
标签: javascript reactjs react-hooks next.js