屏幕更改时的反应导航调用功能

时间:2017-09-12 15:14:54

标签: javascript android react-native react-navigation expo

当用户更改屏幕时,我需要从服务器获取数据以加载用户设置。它由类中的函数完成。我试过了:

componentWillMount(){
  console.log("Sent to function");
  this.onSaveCats('initialize');
}

什么不向控制台日志发布任何内容。我没有找到一个改变新屏幕时触发功能的好方法。有什么我想念的吗?

  "dependencies": {
    "expo": "^20.0.0",
    "react": "16.0.0-alpha.12",
    "react-native": "^0.47.0",
    "react-native-radio-buttons": "^1.0.0",
    "react-navigation": "^1.0.0-beta.11"
  }

1 个答案:

答案 0 :(得分:0)

在反应导航中,我们可以订阅侦听器并添加相应的回调。 我们可以订阅的四个事件是: willFocus,willBlur,didFocus和didBlur。

在这种情况下的用法:

    export default class AnyScreen extends Component{
     constructor(props){
       super(props);
       const didBlurSubscription = this.props.navigation.addListener(
       'didBlur',
       payload => {
             console.debug('didBlur', payload);
       });
      }
    }

您也可以通过将'didBlur'替换为其他任何选项来为didFocus添加类似的订阅。

完成监听后,您甚至可以删除监听器订阅:

didBlurSubscription.remove();

希望这会有所帮助!