Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/react-native/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 更改页面值时,Nativebase选项卡不更改内容_Reactjs_React Native_React Navigation_Native Base_Mobx React - Fatal编程技术网

Reactjs 更改页面值时,Nativebase选项卡不更改内容

Reactjs 更改页面值时,Nativebase选项卡不更改内容,reactjs,react-native,react-navigation,native-base,mobx-react,Reactjs,React Native,React Navigation,Native Base,Mobx React,我在从另一个屏幕导航到选项卡时遇到问题。当我在页面上单击选项卡时,内容切换正常,但是当我在导航到该屏幕之前尝试从另一个组件设置活动选项卡时,我在转到指定选项卡时遇到问题 我尝试过通过导航将参数传递到父屏幕,如下所示:this.props.navigation.navigate('Menu',{gotoordedtails:true}),然后在菜单屏幕内,我创建了一个componentFocused函数,每当页面处于焦点时,我正在检查该gotoordetails参数是否为真,如果为真,我将手动设置

我在从另一个屏幕导航到选项卡时遇到问题。当我在页面上单击选项卡时,内容切换正常,但是当我在导航到该屏幕之前尝试从另一个组件设置活动选项卡时,我在转到指定选项卡时遇到问题

我尝试过通过导航将参数传递到父屏幕,如下所示:
this.props.navigation.navigate('Menu',{gotoordedtails:true})
,然后在菜单屏幕内,我创建了一个
componentFocused
函数,每当页面处于焦点时,我正在检查该
gotoordetails
参数是否为真,如果为真,我将手动设置用于设置活动选项卡的状态变量。但是,这不起作用,只会直接返回默认选项卡(0),但是,样式颜色指示器位于正确的选项卡上,但内容是第一个选项卡的内容

这就是我目前尝试的方式: 以下是菜单屏幕:

import React,{Component}来自'React';
从“mobx react”导入{observer};
从“react native”导入{ScrollView};
从'native base'导入{Container,Tab,Tabs,ScrollableTab};
从“/OrderHistory”导入OrderHistory;
从“../components/Favorites”导入收藏夹;
从“../components/Heading”导入标题;
从“../store/store”导入存储;
从“i18n js”导入i18n;
类菜单扩展组件{
构造函数(){
超级();
这是subs;
此.state={
活动选项卡:0,
初始页:0
};
}
getTab(){
if(this.props.navigation.state.params){
if(this.props.navigation.state.params.page=='orderhistory'){
返回2;
}如果(this.props.page==“收藏夹”){
返回1;
}否则{
返回0;
}
}否则{
if(this.props.navigation.getParam('orderHistory')| | store.toOrderHistory==true){
返回2;
}else if(this.props.navigation.getParam('favorites')){
返回1;
}
store.toOrderHistory.set(false);
}
}
componentDidMount(){
这个;
this.\u sub=this.props.navigation.addListener(
“didFocus”,
这是我的重点
);
}
_组件聚焦=()=>{
store.updateActiveTab(this.getTab());
}
更新选项卡(选项卡){
store.updateActiveTab(表一);
}
render(){
返回(
{this.updateTab.bind(this,tab)}
page={store.activeTab.get()}
renderTabBar={()=>}>
{this.displayMenu()}
)
};
}
导出默认观察者(菜单);
我试图将导航参数从订单详细信息屏幕发送到此屏幕,如下所示:
this.props.navigation.navigate('Menu',{gotoordedeails:true})
当该参数为true时,我将更新store activeTab值,如下所示:
store.updateActiveTab.set(2)
。 最奇怪的是,如果我将console.log设置为tab值,则为2!哪一个是正确的,我需要它!正如我前面提到的,标题的颜色也是活动颜色!只是内容和颜色下划线不在该选项卡上。 是否有必要刷新整个选项卡组件,以便我可以从另一个屏幕更改活动选项卡?我不知道为什么会发生这种行为,需要一些帮助

这里是一个屏幕截图,显示了我手动更改订单详细信息组件中的活动选项卡后发生的情况!

我也使用相同的选项卡和工具,如下所示:

<Tabs ref={(c) => { this.bottomTabRef = c; }} initialPage={0} page={pageNum} onChangeTab={({ from, i }) => { this.setState({ pageNum: i }); this.bottomTabRef.goToPage(0); }}>
<Tab heading="tab1"> 
<Text> Tab1 </Text>
</Tab>
<Tab heading="tab2"> 
<Text> Tab2 </Text>
</Tab>
</Tabs>
{this.bottomTabRef=c;}}initialPage={0}page={pageNum}onChangeTab={({from,i})=>{this.setState({pageNum:i});this.bottomTabRef.goToPage(0);}>
表1
表2

更改页面后,可能会发现页面未更新。哇,非常感谢!一年后回到这个问题,这个问题解决了!!!非常感谢你!!