2
私が反応し、運動をx: -20
からx: 0
まで使用してパン粉をアニメーション化しようとしています。再起動アニメーション/小道具が反応し、運動の変化
Folder > SubFolder > Child
問題はパン粉が最初のレンダリングに完全にアニメーション化、です。その後ときprops
あるいはstate
変更は、アニメーションは更新されません。これはknown bugのようです。
私の質問は、どのように私は状態/小道具の変化にアニメーションを「再起動」しますか? react-motion
を通って行く
const getDefaultStyles = crumbs => {
const defaultStyles = crumbs.map(() => ({x: -20}))
console.log(defaultStyles)
return defaultStyles
}
const getStyles = previousInterpolatedStyles => {
return previousInterpolatedStyles.map((_, i) => {
return i === 0 ? {x: spring(0)} : {x: spring(previousInterpolatedStyles[i-1].x)}
})
}
const Breadcrumb = ({ crumbs }) => (
<div className='breadcrumb-container'>
<StaggeredMotion
defaultStyles={getDefaultStyles(crumbs)}
styles={getStyles}>
{
interpolatedStyles =>
<div className='breadcrumb-list'>
{
interpolatedStyles.map(({x}, i) =>
<div className='breadcrumb' key={i} style={{
WebkitTransform: `translate3d(${x}px, 0, 0)`,
transform: `translate3d(${x}px, 0, 0)`
}}>
<a href='#'>Title</a>
</div>
)
}
</div>
}
</StaggeredMotion>
</div>
)
これはまた、フラッシュメッセージを再アニメーションするための私の問題を解決しました。最初のレンダリングは常に問題ありませんでしたが、再レンダリングするとアニメーションがリセットされませんでした。 'key' propを' Date.now() 'に設定すると、新しいフラッシュメッセージが表示されたときにいつも再アニメーションしたいので、私の問題を解決しました。 – SidOfc