Я хочу вызывать мое оповещение везде, где я нахожусь в моей программе, поэтому мне нужно сделать компонент.
Что я хочу и проблема: мне нужно оповещение почти на всех страницах, но я не могу используйте избыточность, потому что я не буду выводить предупреждение везде, когда он звонит только на 1 странице.
Проблема: я импортирую свой компонент, я не могу установить состояние этого компонента.
это рендер моего компонента Alert:
render() {
const {showAlert} = this.state;
return (
<AwesomeAlert
show={showAlert}
showProgress={false}
title="Attention"
message= {this.messageAlert}
closeOnTouchOutside={true}
closeOnHardwareBackPress={false}
showCancelButton={true}
cancelText="Ok"
cancelButtonColor="#798078"
messageStyle = {styles.alertMessageStyle}
titleStyle = {styles.alertTitleStyle}
onCancelPressed={() => {
this.hideAlert();
}}
/>
);
}
Now Конструктор и функция:
constructor(props){
super(props);
this.messageAlert = 'Caliss'
this.state={
showAlert: false
}
}
showAlert = () => {
this.setState({
showAlert: true
});
};
hideAlert = () => {
this.setState({
showAlert: false
});
};
Render В моем текущем файле:
render() {
<TouchableOpacity style={styles.button}>
<Text style={styles.buttonText} onPress={this._verifyExistUser} >Login</Text>
</TouchableOpacity>
<Alert/>
}
Моя функция для проверки пользователя В моем текущем файле и вызова предупреждения, если у него есть ошибка:
_verifyExistUser(){
if(this.state.user == ''){
//alert("Vous devez obligatoirement entré un nom d'utilisateur ou votre courriel");
this.messageAlert = "Vous devez obligatoirement entré un nom d'utilisateur ou votre courriel"
this.props.showAlert();
}
else if(this.state.password == '') {
this.messageAlert = "Vous devez obligatoirement entré un mot de passe"
this.showAlert();
}
else {
alert(this.state.user);
}
}
Проблема: This.showAlert не является функцией ... undefined.
1- Я не могу экспортировать эту функцию, мне нужно состояние "showAlert"
2- Если у меня есть состояние showAlert, он не будет отображаться, потому что это .showAlert - это состояние компонента.
Что я могу сделать, чтобы импортировать мой компонент в каждый файл, который мне нужен, и вызвать мою функцию ns showAlert и hideAlert, чтобы установить состояние в моем текущем файле?
Спасибо!