从Products呈现的状态开始。
我想Products在上面以动画退出并ProductDetailPhotos在单击viewNavLink to={'/product-detail/' + variant.id}中存在的时候出现Products,但是,首先Products上面被替换为 newProductDetailPhotos和新的另一个ProductDetailPhotos出现在它之后。
<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淡出出现类。
谢谢。