【发布时间】:2016-08-14 22:49:09
【问题描述】:
我是 React-native 和 Redux 的新手。我打算使用 Navigator 组件进行导航。例如,有一个按钮。当它被按下时,应用程序将导航到另一个视图。我想知道是否应该直接在 onPress 中调用 push 还是应该先调用 dispatch 然后再调用基于 push国家?
附言
例如,我有 3 个组件。一种是容器(LaunchContainer):
export default class LaunchContainer extends Component {
renderScene(route,navigator) {
return <route.component {...route.passProps}
title={route.name} navigator={navigator} />
}
render() {
const initialScreen = FrontScreen
return (
<Navigator style={{flex:1}}
initialRoute={{name:'Launch',component:initialScreen}}
renderScene={this.renderScene} />)
}
}
const screenSelector = (store) => {
return {
inLoginScreen: store.launch.isInLoginScreen
}
}
module.exports = connect(screenSelector)(LaunchContainer)
容器内的初始屏幕是FrontScreen:
export default class FrontScreen extends Component {
render() {
return (
<View style={styles.container}>
<TouchableHighlight onPress={()=> this.props.dispatch(switchToLogin())}>
<Text style={styles.btnText}>LOG IN</Text>
</TouchableHighlight>
</View>
)
}
}
当点击login按钮时,我想通过LaunchScreen启动LoginScreen。如您所见,当用户单击登录按钮时,将调度一个动作,然后 reducer 调用 selectScreen 函数。
我的问题是我应该如何以及何时推送 Login 组件?
【问题讨论】:
标签: react-native redux