0
所以,我有一個簡單的按鈕(TouchableHighlight)調用下面的功能:導航儀沒有參數傳遞到現場
showMovie() {
this.props.navigator.push({
name: 'MovieScreen',
index: 1,
movie: "terminator"
});
}
它將按預期工作,推動在不同定義的MovieScreen現場文件。
在MovieScreen構造我:
constructor(props) {
super(props);
console.log(this.props.movie);
}
我得到的是 「不確定」。
我試着用:console.log(this.props.passProps.movie); =>未定義。
我試着把「電影」參數放入一個passProps對象中=>未定義。
我似乎無法將參數傳遞給場景。如果我打印this.props我找不到任何地方的「電影」變量,但this.props在那裏,它包含導航對象和一切。
從網絡上的例子來看,我正在做數以千計的人做的事情,不同之處在於我的行爲不起作用。
我在做什麼錯了?
更多細節的要求
這是我的應用程序是如何組成:
- index.android.js
- HomepageScreen.js
- MovieScreen.js
index.android.js個
class MovieApp extends Component {
render() {
return (
<Navigator
initialRoute={{ name: 'HomepageScreen', title: 'My Initial Scene', index: 0 }}
renderScene={ this.renderScene }
/>
);
}
renderScene(route, navigator) {
if (route.name == 'HomepageScreen') {
return <HomepageScreen navigator={navigator} />
}
if (route.name == 'MovieScreen') {
return <MovieScreen navigator={navigator} />
}
}
}
HomepageScreen.js
export default class HomepageScreen extends Component {
constructor(props) {
super(props);
var navigator = this.props.navigator;
render() {
return(
<TouchableNativeFeedback onPress={this.showMovie.bind(this)}>
<View style={Style.movieButton}>
<Text style={Style.textStyle1}>Asd</Text>
</View>
</TouchableNativeFeedback>
);
}
showMovie() {
this.props.navigator.push({
name: 'MovieScreen',
index: 1,
movie: "terminator"
});
}
}
MovieScreen。JS
export default class MovieScreen extends Component {
constructor(props) {
super(props);
console.log(this.props.movie);
}
.....
肯定。我將這些文件添加到了帖子中。 – daliz
沒有意識到我在回答塊中留下了我的評論!我剛剛更新了上面的答案,讓我知道這是否有效。 –
謝謝你的隊友。它現在有效。我不知道許多事情是否因爲不斷變化而無法正常工作,但有時甚至網絡上的最新指南也不能很好地工作。再次感謝。 – daliz