Дочерний элемент заданного элемента не реагирует на изменения позы
AnimDiv
не меняет свой стиль, поскольку pose
переменные изменения. Тот же подход будет работать с родителем, однако дочерний элемент, кажется, принимает только начальное значение того, что было передано ему.pose
, то не заботится об этом при последующих повторных рендерингах.
Почему это так?
const AnimDiv = posed.div({
red: {
backgroundColor: "red"
},
blue: {
backgroundColor: "blue"
}
});
const AnimationTest = () => {
const [pose, setPose] = useState("red");
return (
<div
className="animated"
>
<AnimDiv
style={{ position: "absolute", height: "20px", width: "20px" }}
onClick={() => setPose(x => (x === "blue" ? "red" : "blue"))}
pose={pose} // only the value from the initial render matters; you may change the pose state variable, but the element will not adjust its style
></AnimDiv>
</div>
);
};
РЕДАКТИРОВАТЬ: он реагирует на изменения позы, однако по какой-либо причине не переключает фон. Непрозрачность, например, сработала.
1 ответ
За background-color
, значение не может быть литералом цвета (например, red
). Подставивrgb(r,g,b)
потому что это заставит позу работать.