Простой переход непрозрачности поза реакции не работает

Я новичок в react-pose и я пробую простую вещь, но переход не работает.

Я только хочу иметь переход между двумя состояниями.

подобно 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

Вы можете мне помочь?

1 ответ

Решение

Здесь решение Вам необходимо поместить 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;
Другие вопросы по тегам