我有一个反应本机组件,其中包含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组件。