简单的反应姿势不透明度过渡不起作用



我是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;

相关内容

  • 没有找到相关文章

最新更新