像这样.
componentDidMount() { this.updateData(); }
但是反应导航componentDidMount只在用户第一次打开屏幕时出现一次,如果以后用户再次打开此页面则不会触发componentDidMount.
>在componentDidMountor componentwillMount中添加侦听器
this.subs = [ this.props.navigation.addListener('didFocus',(payload) => this.componentDidFocus(payload)),];
要么
this.subs = [ this.props.navigation.addListener('didFocus',this.componentDidFocus),this.props.navigation.addListener('willBlur',this.componentwillBlur),];
然后你可以在componentDidFocus中做任何事情,比如获取数据,更新数据,……
>在componentwillUnmount中,删除侦听器
componentwillUnmount() { this.subs.forEach(sub => sub.remove()); }
有关更多详细信息,请参阅此PR:https://github.com/react-navigation/react-navigation/pull/3345
更新:
addListener
– Subscribe to updates to navigation lifecycleReact Navigation emits events to screen components that subscribe to
them:
willBlur
– the screen will be unfocused
willFocus
– the screen will focus
didFocus
– the screen focused (if there was a transition,the
transition completed)
didBlur
– the screen unfocused (if there was a transition,the
transition completed)
更新示例:
const didBlurSubscription = this.props.navigation.addListener( 'didBlur',payload => { console.debug('didBlur',payload); } );
JSON有效负载:
{ action: { type: 'Navigation/COMPLETE_TRANSITION',key: 'StackRouterRoot' },context: 'id-1518521010538-2:Navigation/COMPLETE_TRANSITION_Root',lastState: undefined,state: undefined,type: 'didBlur',};
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。