我创建了一个登录控制器组件,然后将我的stackNavigator传入其中,我的问题是我应该将jwt token传递到屏幕中,但是我不能访问"this.state.jwt“。
我知道有些熟悉的问题,但我就是想不通答案。
export default class App extends Component {
constructor() {
super();
this.state = {
jwt: '',
loading: true
}
this.newJWT = this.newJWT.bind(this);
this.deleteJWT = deviceStorage.deleteJWT.bind(this);
this.loadJWT = deviceStorage.loadJWT.bind(this);
this.loadJWT();
}
newJWT(jwt){
this.setState({
jwt: jwt
});
}
render() {
if (this.state.loading) {
this.deleteJWT()
return (
<Loading size={'large'} />
);
} else if (!this.state.jwt) {
return (
<Auth newJWT={this.newJWT} />
);
} else if (this.state.jwt) {
return (
<RootNav screenProps={this.state.jwt} />
);
}
}
}
const BottomNaviagtor = createBottomTabNavigator ({
Home: Home,
Top: Top,
Following: {screen: Following},
LikeD: {screen:Liked}
})
const RootNav = createAppContainer(BottomNaviagtor)
不知何故,我应该这样做:主页jwt={this.state.jw},并对所有其他bottomNavigator屏幕执行此操作
发布于 2019-05-27 00:38:51
对不起,没有足够的要点来评论,我看到您正在将其作为screenProp传递,如果您将您的screenProps修改为
screenProps={{ jwt: this.state.jwt}}
你可以在你的屏幕上访问this.props.screenProps.jwt吗?
https://stackoverflow.com/questions/56315066
复制相似问题