我是react-pose
的新手,我尝试了一件简单的事情,但过渡没有用。
我只想在2个状态之间进行转换。
像opacity 0 => 1
我想将其与const一起使用,所以我使用了新的react钩子。
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
你能帮我吗?
答案 0 :(得分:0)
解决方法 您需要将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;