Как получить доступ к состоянию другого класса в реагировать на родной?

Я хочу получить доступ к состоянию, объявленному в классе MainActivity, для класса Hamburgicon. Доступ к классу mainacctivity можно получить в том же классе, и, пожалуйста, скажите мне, как получить доступ к состоянию других классов или всего проекта.

class HamburgerIcon extends Component {
 
  render() {
 
    return (
 
      <View style={{flexDirection: 'row'}}>
 
        <TouchableOpacity onPress={this.toggleDrawer.bind(this)} >//I WANT TO ACCESS THE STATE DECLARED IN MainActivity CLASS 
 
        <Text> HOW TO ACCESS STATE OF MainActivity</Text>

 
        </TouchableOpacity>
 
      </View>
    
    );
  }
}
 
class MainActivity extends Component {
 state={
  a:'ABC',
 }
  constructor(props) {
 
    super(props);
  }
 
 componentDidMount()
 {
  this.setState=({
    a:"ABCD"
  })
 }
   render()
   {
      return(
         <View style = { styles.MainContainer }>
            <Text> this.state.a </Text> 
         </View>
      );
   }
}
 <TouchableOpacity onPress={this.toggleDrawer.bind(this)} >//I WANT TO ACCESS THE STATE DECLARED IN MainActivity CLASS 
 
        <Text> HOW TO ACCESS STATE OF MainActivity</Text>

 
        </TouchableOpacity>
        
        
        this IS htML OF CLASS HAMBURGERICON WHERE I WANT TO ACCESS THE STATE OF CLASS MAINACTIVTY
        
        
         <View style = { styles.MainContainer }>
            <Text> this.state.a </Text> 
         </View>
         
         THIS IS MY HTML OF CLASS MAIN ACTIVITY WHERE I CAN ACCESS THE STATE A

1 ответ

Вы можете отправить свое состояние в качестве реквизита из MainActivity другим классам или функциональным компонентам. В вашем случае, например:

HamburgerIcon = (props) => {
   return (
     <View style={{flexDirection: 'row'}}>
       <TouchableOpacity 
         onPress={this.toggleDrawer.bind(this)} 
       >
         <Text>{props.item}</Text>
       </TouchableOpacity>
     </View>
   );
}

class MainActivity extends Component {
  constructor(props) {
    super(props);
    this.state = {
        a: 'ABCD'
    };
  }

  render()
  {
    return(
      <View style = { styles.MainContainer }>
        <Text> this.state.a </Text>
        <HamburgerIcon item={this.state.a}/>    
      </View>
      );
   }
}
Другие вопросы по тегам