componentWillAppear 和 componentWilEnter 永远不会触发

componentWillAppear and componentWilEnter never fires

我不明白为什么我的 src/AnimatedWrapper 中的 componentWillAppear, componentWillEnter and componentWillLeave 永远不会触发?似乎只有该文件的 componentDidMount 会触发。如何触发其他生命周期事件?这是我试过的

这是我的 src/App.js

import React, { Component } from 'react';
import { Route, Link } from "react-router-dom";
import TransitionGroup from "react-transition-group/TransitionGroup";
import Home from './Home';
import About from './About';
const firstChild = props => {
    const childrenArray = React.Children.toArray(props.children);
      return childrenArray[0] || null;
};
export default class App extends Component
{
  render() {

    return (
      <div>
        <Link to={"/"}>Home</Link>
        <Link to={"/about"}>About</Link>
        <Route
          path="/about"
          children={({ match }) => (
            <TransitionGroup component={firstChild}>
              {match && <About />}
            </TransitionGroup>
        )}/>
        <Route
          path="/"
          children={({ match }) => (
            <TransitionGroup component={firstChild}>
              {match && <Home />}
            </TransitionGroup>
        )}/>
      </div>
    )
  }
}

这是我的src/Home.js

import React, { Component } from 'react';
import AnimatedWrapper from './AnimatedWrapper';

class Home extends Component {
  render() {
    return <div>hi</div>;
  }
}
const H = AnimatedWrapper(Home);
export default H;

这是我的src/About.js

import React, { Component } from 'react';
import AnimatedWrapper from './AnimatedWrapper';

class About extends Component {
  render() {
    return <div>hi</div>;
  }
}
const H = AnimatedWrapper(Home);
export default H;

这是我的 src/AnimatedWrapper.js

import React, { Component } from "react";
import * as Animated from "animated/lib/targets/react-dom";
const AnimatedWrapper = WrappedComponent => class AnimatedWrapper
 extends Component {
 constructor(props) {
  super(props);
 }
 componentDidMount() {
   console.log('mount');
 }
 componentWillAppear() {
   console.log('appear');
 }
 componentWillEnter() {
   console.log('enter');
 }
 componentWillLeave() {
   console.log('leave');
 }
 render() {
  return (
   <Animated.div className="animated-page-wrapper">
   </Animated.div>
  );
 }
};
export default AnimatedWrapper;

归根结底,我只是想按照此处的指南 https://hackernoon.com/animated-page-transitions-with-react-router-4-reacttransitiongroup-and-animated-1ca17bd97a1a 尝试进行动画页面转换。如果没有提到的 lifeCycle 函数,我似乎无法做到这一点。

我通过进入我的 package.json 文件并将 react-transition-group 从 2.x 降级到 "react-transition-group": "^1.2.0" 来解决这个问题。