使用taro+reacthooks封装一个遮罩弹框组件,组件出来的时候有个过度动画
时间: 2024-04-13 10:30:21 浏览: 250
在React中写一个Animation组件为组件进入和离开加上动画/过度效果
好的,以下是使用 Taro + React Hooks 封装遮罩弹框组件并添加过渡动画的示例代码:
```jsx
import Taro, { useState, useEffect } from '@tarojs/taro';
import { View, Text, Button } from '@tarojs/components';
import './Modal.css';
const Modal = ({ isOpen, onClose }) => {
const [visible, setVisible] = useState(false);
useEffect(() => {
if (isOpen) {
setVisible(true);
} else {
setTimeout(() => {
setVisible(false);
}, 300); // 过渡动画持续时间
}
}, [isOpen]);
const handleClose = () => {
onClose();
};
return visible ? (
<View className="modal-container">
<View className="modal-mask" onClick={handleClose} />
<View className="modal-content">
<Text>这是一个遮罩弹框</Text>
<Button onClick={handleClose}>关闭</Button>
</View>
</View>
) : null;
};
export default Modal;
```
在上面的代码中,我们使用了 Taro 的 `useState` 和 `useEffect` 钩子来管理组件的状态和生命周期。当 `isOpen` 属性为 `true` 时,设置 `visible` 状态为 `true`,触发过渡动画并显示弹框;当 `isOpen` 属性为 `false` 时,设置 `visible` 状态为 `false`,触发过渡动画并隐藏弹框。
请注意,上述示例代码中的样式类名 `modal-container`、`modal-mask`、`modal-content` 和 `Modal.css` 都是示意性的,你可以根据自己的需求自定义样式。
希望以上代码能满足你的需求!如果你还有其他问题,请随时提问。
阅读全文