我正在使用React Native材质底部导航选项卡从一个选项卡运行到另一个选项卡都很好。第一次,组件将接收道具加载数据并出现警报,
但是,当将选项卡从一个选项卡移到另一个选项卡时,会出现警报提示,直到该选项卡被按下两次。
我的代码如下:
<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>
我的带有componentWillReceiveProps的Tab1组件在这里:
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文件:- Find here
请让我知道我在这里犯了什么错误
答案 0 :(得分:0)
也许这会有所帮助 https://reactjs.org/blog/2018/06/07/you-probably-dont-need-derived-state.html
它的实际含义是: 不要依赖componentwillreceiveprops,该方法可能会像我们预测的那样被调用多次,但是它可能不会多次调用它。因为如果收到的道具没有变化,它将被调用,但实际上什么也没做。
由于您没有提出解决方案,所以我就停在那里,让我知道是否需要进行一些更正或尚不清楚的地方