这里是我的用例,为了问这个问题,我做了一个简单的例子,假设我有两条路线,/view1和/view2,每个路由都安装一个组件,View1和View2,当我到/view2时,需要View1卸载。
如果您想尝试的话,下面是代码:
import React from 'react';
import ReactDOM from 'react-dom';
import {Router, Route, Link, browserHistory} from 'react-router';
import Portal from 'react-portal';
class View1 extends React.Component {
constructor(context, props) {
super(context, props)
}
componentDidMount() {
console.log('view 1 mounted');
}
componentWillUnmout() {
console.log('view 1 unmount');
}
render() {
return (
<h2>hanta</h2>
);
}
}
class View2 extends React.Component {
constructor(context, props) {
super(context, props)
}
componentDidMount() {
console.log('view 2 mounted');
}
componentWillUnmout() {
console.log('view 2 unmount');
}
render() {
return (
<h2>View 2</h2>
);
}
}
class View extends React.Component {
render() {
return (
<div>
<h1>View</h1>
<Link to="/view1">view 1</Link>
<Link to="/view2">view 2</Link>
{this.props.children}
</div>
);
}
}
ReactDOM.render(
<Router history={browserHistory}>
<Route path="/" component={View}>
<Route path="/view1" component={View1} />
<Route path="/view2" component={View2} />
</Route>
</Router>
, document.getElementById("container"))
在任何情况下都不会调用ComponentWillUnmout,我使用的是:
├──@0.14.6
├──react dom@0.14.6
├──react路由器@2.0.0-Rc5
发布于 2016-01-25 16:44:44
你拼错了。应该是componentWillUnmount,而不是componentWillUnmout。
https://stackoverflow.com/questions/34996916
复制相似问题