在React Native的Navigator中更改视图

开发01

我是新来的本地人。

我使用的是NavigatorIOS,但由于限制太多,因此我尝试使用Navigator。在NavigatorIOS中,我可以通过调用来更改视图,this.props.navigator.push()但是它在Navigator中不起作用,它的结构似乎有所不同。如何在使用导航器时更改视图?

杰瑞克·波迪克

那是最小的导航器-它可以做更多的事情(请参阅最后):

  1. 您需要主“导航器”视图来呈现导航器组件
  2. 在导航器中,您需要指定如何渲染不同路线的场景(renderScene属性)
  3. 在此“ renderScene”方法中,您应该根据要渲染的路线来渲染“视图”(场景)。路线是普通的javascript对象,按照约定,可以通过路线的“ id”参数标识场景。为了清晰和关注点分离,我通常将每个场景定义为单独的命名组件,并将这些组件的名称用作“ id”,尽管这只是一个约定。它可以是任何东西(例如场景编号)。确保将navigator作为属性传递给renderScene中的所有这些视图,以便您可以进行进一步的导航(请参见以下示例)
  4. 当您想切换到另一个视图时,实际上您可以将路径推入或替换到该视图,并且导航器会考虑将该路径渲染为场景并为场景正确设置动画(尽管动画集非常有限)-您可以控制常规动画方案,但是每个场景的动画效果也不同(有关示例,请参见官方文档)。导航器保留路由的堆栈(或更确切地说是阵列),以便您可以在堆栈中已存在的路由之间自由移动(通过推送新的,弹出的,替换的等)。

“导航器”视图:

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} />
   }
}

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"});
}

更多详细信息在这里https://facebook.github.io/react-native/docs/navigator.html,您可以在Samples项目中找到很多示例,这是react-native的一部分:https : //github.com/facebook / react-native / tree / master / Examples / UIExplorer

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在React Native Navigator中在组件之间传递值

在Android上的React Native,Navigator中处理后退按钮

React Native:如何在onPress事件上更改视图

React Native中的Native iOS视图

在React Native中的视图之间传递道具

在Redux + React Native + react-navigator中传递参数

状态更改后刷新屏幕[Drawing navigator react-native]

React Native:iOS中的透明Stack Navigator不起作用

在React-Native应用中,如何使用SwitchNavigator(react-navigator)和react-redux?

navigator.geolocation.getCurrentPosition在React Native中不起作用

React-native Drawer Navigator打开,但单击项目不会更改视图

在React Native中隐藏条件视图

react-native:更改与滚动位置对应的视图

在React Native中向窗口添加视图

React Native Flatlist中的网格视图

React Native Android Navigator

在React Native中更改父视图的道具

在React Native渲染功能中跳过视图

从React Native中的renderScene函数(Navigator)获取状态

React Native Navigator意外令牌

无法从React Native引用Navigator

React Native-如何在onPress中更改视图的样式和图像

React Native:更改初始加载视图的背景颜色

如何从 React Native Navigator 中删除标题?

React Native 无法在文本中嵌套视图

在 React Native 中实现 Tab Navigator 时出错

在 react-native 中创建重叠视图

React Native:Stack Navigator 中不同屏幕的不同标头

如何在 react-native 中結合使用 Drawer Navigator 和 Stack Navigator?