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

时间:2019-03-29 11:46:05

标签: javascript reactjs animation react-hooks react-pose

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

你能帮我吗?

1 个答案:

答案 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;