----
基础依赖
styled-components@3.4.2 : 写样式的
react-transition-group@2.4.0 : 路由过渡的,react官方的
react-router-dom...@4.3.1 : react自家路由
react@16.4.2
----
问题有三,亦能解决
组件堆叠问题..就是再次进入路由切换的时候,之前的元素还没有消失,而新的组件渲染了,同时出现
堆叠问题...一开始想的是去子组件区域,用shouldComponentUpdate来判断URL然后阻止渲染,发现不可行
因为过渡外部用的location.key是随机性的,所以组件每次都会重新渲染
最终的解决方案...,是改掉了侧边栏的Link组件,直接用事件绑定(history.push来跳转),完美
随机切换效果
这个结合CSSTransition的特性,因为location.key是随机性的,不同值都会走一遍...(包括随机)
import React, { Component } from 'react';
import { TransitionGroup, CSSTransition } from 'react-transition-group