我在tabNavigation中有两个标签
const HomeStack = createStackNavigator({
Home: HomeView
});
const SettingStack = createStackNavigator({
Setting: SettingView
});
const TabNavigator = createBottomTabNavigator({
Home: HomeStack,
Setting: SettingStack
});
所以我想将标签从HomeView
切换到SettingView
this.props.navigation.navigate('Setting', {
someFlag: true,
data: "SET"
});
通过按钮操作并希望发送一些数据,如下所示。
const { navigation } = this.props;
const openPCPSchedule = navigation.getParam("someFlag", false);
const data = navigation.getParam("data", null);
console.log("NAVI PARAMS: ", openPCPSchedule); // false
console.log("NAVI data: ", data); // null
在false
处获取null
和SettingView
,需要一种正确的方法来将数据从一个标签获取到另一个标签吗?
答案 0 :(得分:2)
您需要在SettingView中使用dangerouslyGetParent()
。 this.props.navigation.navigate
将参数发送给父对象,而不是屏幕。
SettingView中的代码将为:
const { navigation } = this.props;
const openPCPSchedule = navigation.dangerouslyGetParent().getParam("someFlag", false);
const data = navigation.dangerouslyGetParent().getParam("data", null);
答案 1 :(得分:1)
我们使用this.props.navigation从上一个标签中获得道具。
传递数据时添加
this.props.navigation.navigate('Setting', {
someFlag: true,
data: "SET"
});
要在“设置”屏幕上访问以上数据,请在componentDidMount方法或渲染方法中添加以下代码
this.props.navigation.state.params.someFlag
//您可以在此处以true的方式访问someFlag
答案 2 :(得分:1)
您可以使用this.formatedOutputValue = this.cp.transform(parseInt(this.outputValue),1.2-2);
screenProps
的使用Link Page
//主视图
ScreenProps
//在设置视图中
class YourApp extends Component {
render() {
const screenProps = {
someFlag: true,
data: "SET"
}
return (
<TabNavigator screenProps={screenProps} />
)
}
}
export default YourApp
AppRegistry.registerComponent('YourApp', () => YourApp);