как вызвать функцию в родительском компоненте React native - PullRequest
0 голосов
/ 09 июля 2020

всем, у меня большая проблема, и я не могу ее решить ... Я делаю приложение на react-native и expo и реализую response-navigation-drawer, проблема в том, почему у меня есть компонент настраиваемого ящика и в компонент, я могу видеть информацию о пользовательских данных, и у меня есть другой компонент для обновления информации о пользовательских данных, и мне нужно вызвать «refre sh function» для компонента ящика пользователя refre sh информации о пользовательских данных, и я не знаю, как чтобы вызвать эту функцию ...

это мой стек ящиков:

const DrawerStack = createDrawerNavigator({
  Galeria: {
    screen: Home,
    navigationOptions: {
      drawerLockMode : 'locked-closed',
      drawerIcon: ({ tintColor, focused }) => (
        <Icon
        type='Entypo'
        name='camera'
        style={{fontSize:20, color : tintColor}}
        />)
      } 
  },
  Modificar : {
    screen: editprofile,
    navigationOptions: {
      drawerLockMode: 'locked-closed',
      drawerIcon: ({ tintColor, focused }) => (
        <Icon
        type='FontAwesome5'
        name='user-edit'
        style={{fontSize:20, color : tintColor}}
        />)
    }
  }
}

Моя ссылка sh компонент:

export default class CustomDrawerContentComponent extends Component {
  constructor(props){
    super(props)
    this.userdata = this.userdata.bind(this);
    this.state = {
    //
    }
  }
  componentDidMount(){
    this.userdata()

  }
  

  userdata = async() => { // <--i need call this in this component of other component
    const user = await funciones.userdata()
    if(user.response == true){
      this.setState({
        usuario : {portada:user.usuario.portada, avatar :         user.usuario.avatar,
        username : user.usuario.username, email :         user.usuario.email}
      })
    }

  }

  render() {
    const ripple = TouchableNativeFeedback.Ripple('#adacac', false);
    return (
    //
    )
  }
  
}

и, наконец, мой компонент профиля обновления:

export default class Editprofile extends Component {
    constructor(){
        super()
        this.state = {
        //
        }
    }


    guardaravatar = async(base64) => {
        this.setState({sendform : true })
        const guardar = await funciones.guardaravatar(base64)
        if(guardar == true){
            const reload = await funciones.yo()
            if(reload == true){
                  //<-- i need cad refresh here
                await this.navbar.start()
            } else {
                Alert.alert('Error del servidor, intentalo más tarde')
                this.navbar.start()
            }
        } else {
            Alert.alert('Por ahora no se puede guardar')
            this.setState({
                image: null,
                base64: null
            })
        }
    }

    

    render(){
        console.log(this.props.navigation.Screenprops)
        return(
        ///
        )
    }
}

спасибо 4 помогите мне

ОБНОВЛЕНИЕ:

Я решил это с помощью REDUX

...