javascript - 触发组件之间的过渡
问题描述
背景故事
我正在尝试使用 React 实现与此类似的效果:https ://youtu.be/OnlF8sKQRsY 。因为我从来没有做过任何过渡和动画,所以我用 React 做了一些关于过渡和动画的研究,并找到了很多方法来做这些。
我找到了一个名为 Pose 的库,https: //popmotion.io/pose/ ,它看起来非常好,并提供了许多创建过渡的方法。我现在正在使用它,但如果有人提示我,我可以更改。
我想知道什么
当我在想要“转换离开”的组件上时,如何触发我的转换?我现在得到了这个:
return (
<React.Fragment>
{!this.state.renderStartScreen && (
<ExpressCheckout whereToEat={whereToEat} />
)}
{this.state.renderStartScreen && (
<StartScreen
hide={!renderStartScreen}
startExpressCheckout={this.startExpressCheckout}
/>
)}
</React.Fragment>
);
StartScreen
是我当前使用ExpressCheckout
的组件,也是我想要过渡到的组件。renderStartScreen
来自我的状态,可以从StartScreen
.
在ExpressCheckout
我设法创建了一个过渡,其中我的 UI 使用 Pose 从左向右滑动。
const Box = posed.div({
left: { x: 1000 },
right: {
x: -500,
transition: {
duration: 1500
}
}
});
return (
<Grid
style={{ height: "100vh", backgroundColor: "#FFF", marginTop: "2em" }}
>
<Box className="box" pose={this.state.animate ? "right" : "left"}>
<h1 style={{ textAlign: "center" }}>EXPRESS</h1>
</Box>
</Grid>
);
但是,当涉及到触发转换以从转换离开时,StartScreen
我不知道该怎么做。我什至不确定我现在是否走在正确的道路上。非常感谢任何帮助。
谢谢
解决方案
在阅读了很多关于 Pose 自己的文档后,我设法解决了我的问题。
所以这是我在 React with Pose 中的组件之间转换的方式。
希望它可以帮助将来的人!
推荐阅读
- onflow-cadence - (Cadence) 尝试部署到 Flow 测试网时出现“部署包含不存在的合约”错误
- html - 如何使用 React 和 Material UI 制作响应式内容?
- python - 无法让 solve_ivp 使用 2ODE 并在方程中使用不同的变量
- javascript - 断断续续的过渡:同时转换多个路径(和 xaxis)
- xml - 将多个 MarkLogic 查询与 cts:search 组合
- python - TypeError: on_voice_state_update() 接受 3 个位置参数,但给出了 4 个
- node.js - 为什么使用 execSync() 列出文件夹的内容不起作用?
- maven - 如何为 Talend 作业更新 pom.xml 以从 mvn(不是 Talend)获取依赖项
- c# - 将自动化测试与 TestRail 集成
- javascript - 登录laravel后是否有注销用户的解决方案?