gpt4 book ai didi

javascript - 在 TabNavigator 中 react 导航传递 Prop

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:35:33 26 4
gpt4 key购买 nike

我在初始屏幕上有从服务器加载的 Prop 。我想将它们传递给其余的选项卡屏幕。但是,我没有在网上找到任何示例。我知道 screenProps,但不知道如何设置它。我尝试过的所有方法都导致了错误。

const EProj = TabNavigator({
Home: { screen: HomeScreen },
Map: { screen: MapG },
Login: { screen: Login },
Profile: { screen: Profile },
}, {
tabBarPosition: 'bottom',
animationEnabled: true,
tabBarOptions: {
activeTintColor: '#1abc9c',
},
});

这是我的屏幕设置。我应该把 screenProps 放在哪里?

<EProj
screenProps={cats}
/>

任何关于如何设置它的好例子都会有所帮助。提前致谢。

主屏幕设置:

class HomeScreen extends React.Component {
static navigationOptions = {
tabBarLabel: 'Home',
};

...

componentWillMount(){
console.log("Starting to load assets from server!");
this.onLoadCats(); /*starts asset loading*/
}

render() {
return (
<View style={styles.container}>

<Text>Welcome to alpha 1.17 This is hard system test.</Text>
<AssetsLoad catsL={this.state.catsL} />
</View>
);
}
}

最佳答案

您可以做的是创建一个可以返回导航的高阶组件,在该组件的 componentDidMount 中,您可以加载数据并通过 screenProps 传递它。

示例

const EProj = TabNavigator({
Home: { screen: HomeScreen },
Map: { screen: MapG },
Login: { screen: Login },
Profile: { screen: Profile },
}, {
tabBarPosition: 'bottom',
animationEnabled: true,
tabBarOptions: {
activeTintColor: '#1abc9c',
},
});

class MainNavigation extends React.Component {
constructor(props) {
super(props);
this.state = {cats: []};
}
componentDidMount() {
this.onLoadCats().then((cats) => this.setState({ cats: cats }));
}
render() {
return(<EProj screenProps={{ cats: this.state.cats}} />
}
}

// Now you can do in your screens
console.log(this.props.screenProps.cats);

/* This is next line is wrong, please check update above */
/* console.log(this.props.navigation.state.params.cats); */

关于javascript - 在 TabNavigator 中 react 导航传递 Prop ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46264767/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com