我是新来的本地人.
我使用的是NavigatorIOS,但它太有限了所以我正在尝试使用Navigator.在NavigatorIOS中,我可以通过调用来更改视图,this.props.navigator.push()但它在Navigator中不起作用,它的结构似乎不同.如何在使用Navigator中更改视图?
Jar*_*iuk 33
这是最小的工作导航器 - 它可以做得更多(见最后):
"导航器"查看:
render: function() {
<Navigator style={styles.navigator}
renderScene={(route, nav) =>
{return this.renderScene(route, nav)}}
/>
},
renderScene: function(route,nav) {
switch (route.id) {
case "SomeComponent":
return <SomeComponent navigator={nav} />
case "SomeOtherComponent:
return <SomeOtherComponent navigator={nav} />
}
}
Run Code Online (Sandbox Code Playgroud)
SomeComponent:
onSomethingClicked: function() {
// this will push the new component on top of me (you can go back)
this.props.navigator.push({id: "SomeOtherComponent"});
}
onSomethingOtherClicked: function() {
// this will replace myself with the other component (no going back)
this.props.navigator.replace({id: "SomeOtherComponent"});
}
Run Code Online (Sandbox Code Playgroud)
更多详细信息,请访问https://facebook.github.io/react-native/docs/navigator.html,您可以在Samples项目中找到很多示例,它们是react-native的一部分:https://github.com/facebook /反应天然/树/主/实施例/ UIExplorer
And*_*Wei 14
我发现在展示Navigator的工作原理时,Facebook的例子要么是简单的要么是复杂的.基于@ jarek-potiuk示例,我创建了一个简单的应用程序,可以来回切换屏幕.
在这个例子中,我正在使用: react-native: 0.36.1
index.android.js
import React, { Component } from 'react';
import { AppRegistry, Navigator } from 'react-native';
import Apple from './app/Apple';
import Orange from './app/Orange'
class wyse extends Component {
render() {
return (
<Navigator
initialRoute={{screen: 'Apple'}}
renderScene={(route, nav) => {return this.renderScene(route, nav)}}
/>
)
}
renderScene(route,nav) {
switch (route.screen) {
case "Apple":
return <Apple navigator={nav} />
case "Orange":
return <Orange navigator={nav} />
}
}
}
AppRegistry.registerComponent('wyse', () => wyse);
Run Code Online (Sandbox Code Playgroud)
应用程序/ Apple.js
import React, { Component } from 'react';
import { View, Text, TouchableHighlight } from 'react-native';
export default class Apple extends Component {
render() {
return (
<View>
<Text>Apple</Text>
<TouchableHighlight onPress={this.goOrange.bind(this)}>
<Text>Go to Orange</Text>
</TouchableHighlight>
</View>
)
}
goOrange() {
console.log("go to orange");
this.props.navigator.push({ screen: 'Orange' });
}
}
Run Code Online (Sandbox Code Playgroud)
应用程序/ Orange.js
import React, { Component, PropTypes } from 'react';
import { View, Text, TouchableHighlight } from 'react-native';
export default class Orange extends Component {
render() {
return (
<View>
<Text>Orange</Text>
<TouchableHighlight onPress={this.goApple.bind(this)}>
<Text>Go to Apple</Text>
</TouchableHighlight>
</View>
)
}
goApple() {
console.log("go to apple");
this.props.navigator.push({ screen: 'Apple' });
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
18334 次 |
| 最近记录: |