3
所以最初我的应用程序是给店里分量罚款index.ios.js
像这样:在使用NavigatorIOS时,React Native如何将商店传递给Component?
class Laybium extends Component {
render() {
return (
<Provider store={store}>
<AudioPlayerPage />
</Provider>
);
}
}
但是我想添加一些更多的屏幕,所以我用NavigatorIOS
像这样:
class Laybium extends Component {
render() {
return (
<Provider store={store}>
<NavigatorIOS
initialRoute={{
component: Screen1,
title: 'Screen 1: Pick username'
}}
style={{flex: 1}}
/>
</Provider>
);
}
}
这使我的应用程序去 - >屏幕1 - >屏幕2 - >屏幕3 - > AudioPlayerPage(我显示的原始屏幕)。
屏幕1 - > 2 - > 3的转换正常工作。但现在我不知道如何提供商店和道具给我的组件AudioPlayerPage
?由于将NavigatorIOS
组件包装在Provider
组件中似乎不起作用。
这里是我的Screen3.js过渡至我的部件AudioPlayerPage
class Screen3 extends Component {
static propTypes = {
navigator: PropTypes.object.isRequired
}
constructor(props, context) {
super(props, context);
this._onForward = this._onForward.bind(this);
}
_onForward() {
this.props.navigator.push({
component: AudioPlayerPage,
title: 'AudioPlayer: play synced song'
// TODO: pass store
});
}
render() {
return (
<View style={styles.container}>
<Text style={styles.text}>Screen3</Text>
<TouchableHighlight style={styles.button}
onPress={this._onForward}
underlayColor='#99d9f4'>
<Text style={styles.buttonText}>Go to AudioPlayerPage</Text>
</TouchableHighlight>
</View>
);
}
}
什么版本的反应和react-native你有你package.json?我无法通过“反应”来构建:“15.0.2”,“react-native”:“0.26.3”,“react-native-router-flux”:“^ 3.35.0”,with和没有^ –
也我有Xcode版本7.3.1 –
我正在使用反应15.3.1,react-native 0.33.0,并且react-native-router-flux^3.35.0。我还没有尝试过iOS,但只适用于Android。 – George