我正在将Redux集成到React Native应用程序中。我在解决如何通过NavigatorIOS组件传递Redux状态时遇到了麻烦。
当执行进入下面显示的组件时,调试器显示
{
extern int printf(const char * fmt, ...);
printf("hello?\n");
}
使用actions对象中的预期操作,并且状态尚未定义,因为它尚未初始化(我假设)。
但是,当执行进入ItemIndex组件时,调试器会显示
props = Object {state: undefined, actions: Object}
我当前的实现尝试显式传递状态和操作,但它们没有通过:调试器现在显示
props = Object {navigator: Object, route: Object}
props = Object {navigator: Object, route: Object, state: null, actions: undefined}
有没有办法可以继续通过class MainComponent extends Component {
constructor(props) {
super(props)
const { actions, state } = props
}
render() {
return (
<NavigatorIOS
ref = "nav"
style = {styles.navigator}
initialRoute = {{
// Pass redux state into component
passProps: { state: this.state, actions: this.actions },
// currently becomes { state: null, actions: undefined }
title: 'Items',
component: ItemIndex
}}/>
)
}
}
module.exports = MainComponent
传递Redux状态?
答案 0 :(得分:2)
react-native-navigation支持Redux,使用原生iOS视图控制器(通过react-native-controllers而不是navigatorIOS),并将很快支持Android。到目前为止,这是满足我需求的最佳导航解决方案。
答案 1 :(得分:0)
我意识到我要离开链条的props
部分:
render() {
return (
<NavigatorIOS
ref = "nav"
style = {styles.navigator}
initialRoute = {{
// Pass redux state into component
passProps: { state: this.props.state, actions: this.props.actions },
title: 'Items',
component: ItemIndex
}}/>
)
}
实际上 - 这仅适用于初始状态,它似乎停止状态更改触发initialRoute组件和后续组件的组件更新。