Home > Enterprise >  How to dynamically change zIndex in react native?
How to dynamically change zIndex in react native?

Time:09-30

I'm new to react native, how do I dynamically change the Zindex in react native? or how do I hide/show using some other dynamic way?

import { styles } from './App_styles';

 export default function App() {

  return (
    <View style={styles.body}>
      
      <Pressable onPress={()=>{styles.popup.zIndex=0}}>
      <View style={styles.popup}>
        
      </View>
      </Pressable>

      <View style={styles.main_content}>

      </View>

    </View>
  );
  }

App_styles:

export const styles = StyleSheet.create({

    body:{
        backgroundColor: 'gray',
        height:'100%',
    },

    popup: {
        position:'absolute',
        backgroundColor: 'rgba(0,0,0, 0.5)',
        height:'100%',
        width:'100%',
        zIndex:1,
        alignSelf:'center',
        marginTop:'30%',
    },
    
    main_content:{
        backgroundColor: 'red',
        width:'100%',
        height:'100%'

    },
    
});

I'm not sure how to dynamically change properties in react native using js

CodePudding user response:

You can use state to update the style of the popup:

import { styles } from './App_styles';
import {useState} from 'React';

 export default function App() {

  const [zIndex, setZIndex] = useState(1);

  return (
    <View style={styles.body}>
      
      <Pressable onPress={()=>{setZIndex(0)}}>
      <View style={[styles.popup, {zIndex: zIndex}]}>
        
      </View>
      </Pressable>

      <View style={styles.main_content}>

      </View>

    </View>
  );
  }

CodePudding user response:

Just use useState hook

  import { styles } from './App_styles';

  export default function App() {
  const [show, setShow] = useState(true)

  return (
   <View style={styles.body}>
   {show && <View style={styles.popup}>
    
  </View>}
  
  <TouchableOpacity onPress={()=>setShow(!show)}>
  <Text>Show/Hide</Text>
  </TouchableOpacity>

  <View style={styles.main_content}>

  </View>

</View>
  );
 }
  • Related