【发布时间】:2019-03-31 03:32:22
【问题描述】:
我在我的应用程序中使用了 2 个单独的 StackNavigators,并在 if 条件结构中呈现它们。 例如:
if(this.props.authToken)//authToken is a state object setting in one of my reducers
return <AppNavigator />
else
return <AuthNavigator />
我会在 AppNavigator 的几乎每个屏幕中使用该 authToken 对象。
我目前使用的一种方法是在每个屏幕导出语句中的“mapStateToProps”函数中获取它。
class SomeScreen extends React.Component {
render() {
return (
<View><Text>Some UI {this.props.authToken.userName} </Text></View>
);
}
}
const mapStateToProps = state => {
return {
//This line that i have to write in every screen
authToken: state.app.authToken
};
};
const mapDispatchToProps = dispatch => {
return {...}
};
export default connect(mapStateToProps, mapDispatchToProps)(SomeScreen);
但我不喜欢那样。因此,如果有一个对象可以在我的大多数导航器屏幕中使用,我希望将它从我的根组件传递到呈现导航器组件,例如:
if(this.props.authToken)//authToken is a state object setting in one of my reducers
return <AppNavigator authToken={this.props.authToken} someOtherCommonProp={{....}}/>
else
return <AuthNavigator />
所以我的问题是,解决这个问题的最佳做法是什么。
【问题讨论】:
标签: react-native redux reducers stack-navigator