реагировать на нативный компонент получить реквизит не загружается, когда мой экран загружается во второй раз - PullRequest
0 голосов
/ 16 октября 2018

Я использую React Native Material. Нижние навигационные вкладки работают отлично с одной вкладки на другую. Впервые компонент получит запрос на загрузку данных, и появится предупреждение,

Но когда вкладки переходят от одной кдругое предупреждение появляется до тех пор, пока вкладка не будет нажата дважды.

мой код находится ниже:

 <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>

И мой компонент Tab1 с componentWillReceiveProps находится здесь:

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
         })
       }
    }
  }

Компонент будет получать реквизиты, похожие на Tab2

Может вкратце понять, если файл Zif просматривается ниже: - Найти здесь

Пожалуйста, дайте мне знать, какую ошибку я сделалздесь

1 Ответ

0 голосов
/ 16 октября 2018

Может быть, это поможет https://reactjs.org/blog/2018/06/07/you-probably-dont-need-derived-state.html

То, что на самом деле говорит: не полагайтесь на componentwillreceiveprops, метод может вызываться столько раз, сколько мы предсказываем, но он может не обновлять реквизиты столько раз, сколько получаетназывается.Потому что, если полученный реквизит не изменяется, он вызывается, но на самом деле ничего не делает.

Поскольку вы не спрашиваете решения, я просто остановлюсь здесь, дай мне знать, нужны ли какие-то исправления или что-то еще неясно

...