V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
coderabbit
V2EX  ›  React

react 组件 函数式调用 离开时为什么无法触发生命 componentWillUnmount

  •  
  •   coderabbit · 2019-09-08 00:37:34 +08:00 · 3218 次点击
    这是一个创建于 1663 天前的主题,其中的信息可能已经有所发展或是发生改变。

    某个 Modal 组件 正常调用

    <Modal/>
    

    这样或以正常监听到生命周期。

    但是以函数式的调用就触发不了生命周期 componentWillUnmount

    modal() {
     Modal.confirm({
     })
    }
    

    这种法写 正常调用还是函数式调用都可以 componentDidMount 是可以触发的。 但是路由变化变形页面函数式调用就导致了 componentWillUnmount 它无法触发。从 componentDidMount 监听的事件 设置的定时器也无法销毁。想问下如何处理它呢!

    3 条回复    2019-09-08 13:50:57 +08:00
    coderabbit
        1
    coderabbit  
    OP
       2019-09-08 01:03:19 +08:00
    我又写了个
    ```
    Modal.close();
    ```
    调用组件的页面
    ```
    componentWillUnmount() {
    Modal.close();
    }
    ```
    来全局关闭它!但我还是想通过组件的 componentWillUnmount 来触发这个生命周期! 我去网上看了一圈组件,发现它们的函数式调用 都存在这个问题!
    yuang
        2
    yuang  
       2019-09-08 12:18:05 +08:00 via Android
    confirm 的写法直接在 onClose 属性中调用不就行了吗
    coderabbit
        3
    coderabbit  
    OP
       2019-09-08 13:50:57 +08:00
    @yuang 调用你要手要触发一次啊,我想的是 离开页面就销毁
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5181 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 1027ms · UTC 09:41 · PVG 17:41 · LAX 02:41 · JFK 05:41
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.