首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >到另一个路由必须卸载当前路由组件。

到另一个路由必须卸载当前路由组件。
EN

Stack Overflow用户
提问于 2016-01-25 16:01:35
回答 1查看 1.1K关注 0票数 1

这里是我的用例,为了问这个问题,我做了一个简单的例子,假设我有两条路线,/view1和/view2,每个路由都安装一个组件,View1和View2,当我到/view2时,需要View1卸载。

如果您想尝试的话,下面是代码:

代码语言:javascript
复制
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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-01-25 16:44:44

你拼错了。应该是componentWillUnmount,而不是componentWillUnmout

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34996916

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档