我是react-pose
新手,我尝试了一件简单的事情,但过渡不起作用。
我只想在 2 个状态之间进行过渡。
喜欢opacity 0 => 1
我想将它与 const 一起使用,所以我使用新的反应钩子。
import React, { useState } from 'react';
import posed from 'react-pose';
const Pop = () => {
const [position, setPosition] = useState(false);
const Box = posed.div({
left: { x: 0 },
right: { x: 100 }
});
const toggleVisibility = () => {
setPosition(!position);
};
return (
<div>
<Box pose={position ? 'left' : 'right'} className="box" />
<button onClick={toggleVisibility}>Toggle visibility</button>
</div>
);
};
export default Pop;
一切正常,但这段代码就像我设置了transition: 0s
你可以帮我吗?
这里是解决方案您需要将 const Box 放在 react 类之外,以防止重新渲染。
import React, { useState } from 'react';
import posed from 'react-pose';
const Box = posed.div({
left: { x: 0 },
right: { x: 100 }
});
const Pop = () => {
const [position, setPosition] = useState(false);
const toggleVisibility = () => {
setPosition(!position);
};
return (
<div>
<Box pose={position ? 'left' : 'right'} className="box" />
<button onClick={toggleVisibility}>Toggle visibility</button>
</div>
);
};
export default Pop;