我有一个反应本机组件,其中包含WillFocus和componentDidMount函数。
我的问题是,如果我导航到该组件,首先要触发哪个功能? 'WillFocus'或'componentDidMount'
示例代码如下所示

class Notifications extends Component {
    static navigationOptions = {
    header: null
    }
    constructor(props) {
        super(props);
        const{navigation}=this.props
        this.state = {
          highlightHome : true,
          highlightNotifications: true,

        }
    }

    willFocus = [this.props.navigation.addListener(
        'willFocus',
         payload => {
            console.log('willFocus')
         }
    )]

    componentDidMount() {
       console.log('componentDidMount')
    }
}

最佳答案

React Navigation将事件发送到订阅它们的屏幕组件。

componentDidMount:
一旦将所有子元素和组件实例安装到本机UI上,就会调用此方法。调用此方法后,我们现在可以访问本机UI(DOM,UIView等),可以访问子引用,还可以潜在地触发新的渲染过程。

willFocus:
屏幕将聚焦。

根据定义,willFocus将在ComponentDidMount之后调用,因为它安装了所有UI组件。

07-24 17:32