javascript - 如何使用 React 转换组转换文本更改?
问题描述
我有一个按钮,可以根据当前状态将状态从真或假更改。当此状态发生变化时,元素上的文本将发生变化。
我尝试使用“react-transition-group”中的转换,因为我使用的是情感风格。
const [animate, setAnimate] = useState(false)
const Heading = styled.h1`
transition: opacity 0.2s;
opacity = ${({state}) => (state === 'entering' || state === 'entered' ? 1 : 0)};
`
return (
<Transition in={animate} timeout={300}>
{state => <Heading state={state}>{animate ? 'Hello' : 'World'}</Heading>}
</Transition>
<button onClick={() => setAnimate(!animate)}>Switch</button>
)
在这里,我试图让“Hello”文本淡出,而“World”文本在状态从 true 变为 false 时淡入。
解决方案
我设法通过使用不同的状态来跟踪动画状态和一个计时器来让它工作,该计时器将在状态到期后将状态设置回真。基本上,这将在“退出”后将动画状态重置回“进入”,以便下一个动画可以发生。
我对这个解决方案并不完全满意,如果有人可以提供,我想要一个更好的解决方案。
推荐阅读
- c# - 如何解决“AlprNet”找不到?
- continuous-integration - 有没有办法使用 Salesforce DX 与 TeamCity 进行持续集成
- javascript - firebaseui.js:formatted:9514 Uncaught TypeError: Cannot read property 'EmailAuthProvider' of undefined
- stripe-payments - Stripe 即时支付是否允许即时支付?
- r - R Shiny - 检测是否使用了滑块或单选按钮
- python - 为什么 QFileDialog 使用斜杠而不是反斜杠?
- c# - 在具有相同属性的 XML 元素之间导航
- r - R:na.locf 未按预期运行
- c# - 此 SqlParameterCollection 函数不包含参数名称为“@name”的 SqlParameter
- greasemonkey - 仅匹配 Tampermonkey / Greasemonkey 中的根/主页?