Reactjs 使用“反应弹簧”设置条件反应组件的动画

Reactjs 使用“反应弹簧”设置条件反应组件的动画,reactjs,animation,react-spring,Reactjs,Animation,React Spring,我有一个react组件,我想在组件状态改变时为其设置动画 我正在使用useReducer const[state,dispatch]=useReducer,initialState; 然后单击,我将state.isOpen从false更新为true,反之亦然。在同一个组件中,我有这个 const wrapperStyles = useSpring({ transform: state.isOpen ? 'translate3d(0, 0, -300px)' : 'translate3d(

我有一个react组件,我想在组件状态改变时为其设置动画

我正在使用useReducer const[state,dispatch]=useReducer,initialState; 然后单击,我将state.isOpen从false更新为true,反之亦然。在同一个组件中,我有这个

const wrapperStyles = useSpring({
    transform: state.isOpen ? 'translate3d(0, 0, -300px)' : 'translate3d(0, 0, 0)'
  });
最后,组件像这样使用它 我希望在状态更改时应用和更改转换,但事实并非如此。 我不知道我做错了什么,我是按照他们在网站上的简单指示做的

编辑:我尝试了不透明度而不是转换,效果很好,所以我对css转换做了一些错误的处理?

您阅读了本页。 我寻找春天, 如果使用transform,则使用“react spring”中的导入{useTransition,animated}

不用弹簧

常量[项目,集合]=useState[…] const transitions=useTransitionitems,item=>item.key{ from:{transform:'translate3d0,-40px,0'}, 输入:{transform:'translate3d0,0px,0'}, 左:{transform:'translate3d0,-40px,0'}, } 返回转换。映射{item,props,key}=> {item.text}
我在回答我自己的问题,所以它不起作用的原因是我使用了不同的价值观

从0到300px。它必须是相同的值,因此更改为 转换:state.isOpen?“translate3d0,0,-300px':'translate3d0,0,**0px**' 其中0px起作用:

谢谢你的帮助