Простой переход непрозрачности поза реакции не работает
Я новичок в 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;