【发布时间】:2021-05-25 03:19:13
【问题描述】:
我在 React 上有一个简单的琐事应用程序组件。当我回答问题时 - 我的组件会重新呈现新问题,并且我希望为问题块制作动画。但是,我在这个组件的第一次渲染时只有一次性动画。如何在组件的每次重新渲染时制作动画?
这是我的沙盒示例 - https://codesandbox.io/s/youthful-ardinghelli-hn2zx?file=/src/App.js
这是我的代码:
import { useState } from "react";
import "./styles.css";
const questions = ["1", "2", "3", "4", "5"];
const answers = ["asgas", "asgasg", "ashash", "hasdha"];
export default function App() {
const [currentQuestion, setCurrentQuestion] = useState(0);
return (
<>
<h2 className="question">{questions[currentQuestion]}</h2>
<div>
{answers.map((i) => (
<button
onClick={() => {
setCurrentQuestion((prevState) => prevState + 1);
}}
key={i}
>
{i}
</button>
))}
</div>
</>
);
}
.App {
font-family: sans-serif;
text-align: center;
}
.question {
background-color: blue;
animation: fromTop 0.5s linear;
}
@keyframes fromTop {
0% {
transform: translateY(-20%);
}
100% {
transform: translateY(0%);
}
}
【问题讨论】:
标签: javascript css reactjs animation rendering