1

I'm using React Native Material Bottom Navigation Tabs are working Fine from one tab to another Tab., For the First time componentwillreceiveprops loads data and alert appears,

But when the tabs are tapped from one to other the alert doent appears untill the tab is pressed for twice.

my code is below :

 <View style={{flex: 0.9}}>
              {this.state.activeTab === 0 ? <Tab1/> :this.state.activeTab === 1 ? <Tab2/> : this.state.activeTab === 2 ? ...... }
          </View>
          <View style={{flex: 0.1,justifyContent:"center"}}>
            <BottomNavigation
                  activeTab={this.state.activeTab}                
                  labelColor={myColors.spaceGrey}
                  rippleColor="lightgrey"
                  style={styles.bottomNavigation}
                  onTabChange={this.handleTabChange}>
                  <Tab
                      barBackgroundColor={myColors.white}
                      label="Tab1"
                      icon={<Icon size={window.width/17.1} color={myColors.spaceGrey} name="film" />}
                  />
                  <Tab
                      barBackgroundColor={myColors.white}
                      label="Tab2"
                      icon={<Icon size={window.width/17.1} color={myColors.spaceGrey} name="buysellads" />}
                  />
                  ...........
</BottomNavigation>

And my Tab1 component with componentWillReceiveProps is Here:

componentWillReceiveProps(nextProps){
    const propsData = nextProps 
    const propsDataTwo = propsData

    ListOfObjects = propsDataTwo.data.listofobjects
    if(ListOfObjects != undefined){
      if (ListOfObjects != [] && ListOfObjects != 0) {
        this.setState({
         emptyText: false,
         loading: false
        },()=>{alert("Tab1")})
       } else {
         this.setState({
           emptyText: true,
           loading: false
         })
       }
    }
  }

component will receive props similar to the Tab2

Can Briefly understand if the Zif file is viewed below:- Find here

Please let me know what mistake i have done here

nikolos
  • 11
  • 2

1 Answers1

0

Maybe this helps https://reactjs.org/blog/2018/06/07/you-probably-dont-need-derived-state.html

What it actually says is: Do not rely on componentwillreceiveprops, the method might get called as many times as we predict, but it might not update props as many times it gets called. Because if props received dont change, it gets called but dont actually do anything.

Since u dont ask solution, i'll just stop there lemme know if some corrections needed or something still unclear

Nikko Khresna
  • 1,024
  • 8
  • 10