我正在努力使用本机应用程序。我会实现React Native Firebase动态链接,但是现在我有点迷路了。我在HomeScreen上使用此方法,每次有人打开应用程序时,它都能完美运行。
db.adminCommand({renameCollection: "db1.test1", to: "db2.test2"})
但是,当应用程序已经打开时,此方法将无法正常工作。每当有人回到打开的应用程序时,有什么方法可以触发功能吗?
答案 0 :(得分:4)
提示,您应该将代码放在componentDidMount
中,以免阻塞初始(第一个)渲染。
您可以使用AppState
侦听在后台/前景中放置的应用程序的更改。
componentDidMount() {
this.showPreview();
AppState.addEventListener('change', this.onAppStateChange);
}
componentWillUnmount() {
AppState.removeEventListener('change', this.onAppStateChange);
}
const onAppStateChange = appState => {
// You can check if appState is active/background/foreground
this.showPreview();
}
const showPreview = async (appState) => {
// You can check if appState is active/inactive/background
try {
let url = await firebase.links().getInitialLink();
if(url) {
let api = "example.com/user/123456";
try {
this.setState({ data: "John Doe" });
this.props.navigation.navigate('Preview', {user: this.state.data })
}
catch {
}
}
}
catch(e) {
console.error(e);
}
}