当用户更改屏幕时,我需要从服务器获取数据以加载用户设置。它由类中的函数完成。我试过了:
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();
希望这可以帮助!