我想在 react-native 中更改组件状态而不重新加载 metro
I want to change state of the component without reloading metro in react-native
所以基本上我的应用程序中有一堆应用程序
正如你在图片中看到的
在我的应用程序中,它会检查应用程序是否已安装,如果已安装则显示打开,如果未安装则显示正在安装我现在面临的问题是如果应用程序未安装,我单击按钮安装,它将重定向到 play-store 然后我会安装,现在每当我来到我的主
页面,没有重新加载地铁,按钮的标题没有更新打开。例子。 :-
现在是最后一个应用程序,我已经安装但是按钮的标题还没有改变。
当我重新加载 metro 时,它将显示为打开标题,但我想在不重新加载 metro 的情况下更改按钮标题。
import React, { Component } from 'react';
import { Text, Image ,View, Button, Linking } from 'react-native'
import * as ApkManager from 'react-native-apk-manager';
import styles from './styles'
class A extends Component {
constructor(props){
super(props)
this.state = {
title: "Install",
buttonStatus: false
}
}
componentDidMount() {
console.log("state has been mounted")
ApkManager.isAppInstalled(this.props.props.packageName).then((data)=> {
if(data == true){
this.setState({
title: "Open"
})
}
});
}
render(){
return(
<View style={styles.container}>
<Image source={{ uri: this.props.props.imageIcon}}
style={{width: 100, height: 100, margin: 10}}/>
<Button style={styles.button}
title={this.state.title}
onPress={() => {
if(this.state.title == 'Install'){
Linking.openURL(this.props.props.storeUrl)
}else{
this.state.title = 'Open'
ApkManager.openApk(this.props.props.packageName);
}
}}
/>
</View>
)
}
}
export default A
使用 setinterval hook 重复 isInstalled 方法 Apkmanager
所以基本上我的应用程序中有一堆应用程序
正如你在图片中看到的
在我的应用程序中,它会检查应用程序是否已安装,如果已安装则显示打开,如果未安装则显示正在安装我现在面临的问题是如果应用程序未安装,我单击按钮安装,它将重定向到 play-store 然后我会安装,现在每当我来到我的主
页面,没有重新加载地铁,按钮的标题没有更新打开。例子。 :-
现在是最后一个应用程序,我已经安装但是按钮的标题还没有改变。
当我重新加载 metro 时,它将显示为打开标题,但我想在不重新加载 metro 的情况下更改按钮标题。
import React, { Component } from 'react';
import { Text, Image ,View, Button, Linking } from 'react-native'
import * as ApkManager from 'react-native-apk-manager';
import styles from './styles'
class A extends Component {
constructor(props){
super(props)
this.state = {
title: "Install",
buttonStatus: false
}
}
componentDidMount() {
console.log("state has been mounted")
ApkManager.isAppInstalled(this.props.props.packageName).then((data)=> {
if(data == true){
this.setState({
title: "Open"
})
}
});
}
render(){
return(
<View style={styles.container}>
<Image source={{ uri: this.props.props.imageIcon}}
style={{width: 100, height: 100, margin: 10}}/>
<Button style={styles.button}
title={this.state.title}
onPress={() => {
if(this.state.title == 'Install'){
Linking.openURL(this.props.props.storeUrl)
}else{
this.state.title = 'Open'
ApkManager.openApk(this.props.props.packageName);
}
}}
/>
</View>
)
}
}
export default A
使用 setinterval hook 重复 isInstalled 方法 Apkmanager