0

我是新手,react-pose我尝试了一个简单的事情,但过渡不起作用。

我只想在两种状态之间进行转换。

喜欢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

你能帮助我吗 ?

4

1 回答 1

0

这里的解决方案您需要将 const Box 放在反应类之外,以防止重新渲染。

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;
于 2019-03-29T15:41:43.223 回答