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

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"
  }

最佳答案

在反应导航中,我们可以订阅侦听器并添加相应的回调。
我们可以订阅的四个事件是:
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();


希望这可以帮助!

09-25 19:27