【发布时间】:2019-03-31 23:33:36
【问题描述】:
从呈现Products 的状态开始。
我希望上面的Products 以动画形式退出,并在单击Products 视图中存在的NavLink to={'/product-detail/' + variant.id} 时出现ProductDetailPhotos,但是,首先上面的Products 被新的ProductDetailPhotos 和新的另一个@ 替换987654328@ 出现在它后面。
<TransitionGroup component="main" className="page-main">
<CSSTransition key={location.pathname} timeout={timeout} classNames="fade" appear>
<Switch location={location}>
<Route exact path={'/'} component={ () =>
<Products
productsArray={this.state.myProductsArray}
client={this.props.client}
/>
}/>
<Route path='/product-detail/:variantId' render={props =>
<ProductDetailPhotos
products={this.state.products}
client={this.props.client}
addVariantToCart={this.addVariantToCart}
{...props}
/>
}/>
<Route component={NotFoundPage} />
</Switch>
</CSSTransition>
</TransitionGroup>
我按时间序列实际解释如下:
-
Products DOM被渲染 - 单击导航链接到 /product-detail
-
Products DOM立即更改为带有淡出退出类的ProductDetailPhotos 1 DOM,然后呈现带有淡入淡出类的ProductDetailPhotos 2 DOM -
ProductDetailPhotos 1 DOM和ProductDetailPhotos 2 DOM通过 CSS 启动动画。ProductDetailPhotos 1 DOM动画退出,ProductDetailPhotos 2 DOM动画进入。 -
ProductDetailPhotos 1 DOM终于消失了
我的期望如下:
-
Products DOM被渲染 - 单击导航链接到 /product-detail
-
ProductDetailPhotos DOM首先使用淡入淡出类呈现 - 然后
Products DOM开始通过 CSS 以淡出退出类退出动画,ProductDetailPhotos DOM也通过淡入淡出类开始。
谢谢。
【问题讨论】:
标签: reactjs css-transitions react-router-v4 reactcsstransitiongroup react-transition-group