【问题标题】:react-native router flux Actions is not navigating to other pagereact-native 路由器通量操作未导航到其他页面
【发布时间】:2017-02-23 06:59:09
【问题描述】:
import React, { Component } from 'react';
import {
  AppRegistry,
  StyleSheet,
  Text,
  View,
  Navigator,
  TouchableOpacity,
  Image,
  Button
} from 'react-native';
import Actions from 'react-native-router-flux';


import First from './First';

export default class Home extends Component{
      componentWillMount() {

    }


render(){
    return(
        <View>
        <View style={{height:220,backgroundColor:'#DCDCDC'}}>
            <Image style={{width:120,height:120,top:50,left:120,backgroundColor:'red'}} 
        source={require('./download.png')} />
        </View>
         <View style={{top:30}}>
         <View style={{flexDirection: 'row', alignItems: 'center'}}>
          <TouchableOpacity style= { styles.views}  
          onPress = {()=>{ Actions.First({customData: 'Hello!'}) }}>
          <Text style={{fontSize:20, textAlign:'center',color:'white',top:20}}> Profile </Text>
          </TouchableOpacity>

           <TouchableOpacity style= { styles.views1} >
          <Text style={{fontSize:20, textAlign:'center',color:'white',top:20}}> Health Tracker </Text>
          </TouchableOpacity>
          </View>



         </View>


        </View>
        );
}
}

在上面的代码中,Actions in not working意味着没有导航到First.js页面,我该如何编辑我的代码,并且我没有在ComponentWillMount()函数中写任何东西,我应该在里面写什么?ataomega

import React, { Component } from 'react';
import {
  AppRegistry,
  StyleSheet,
  Text,
  View,
  Navigator,
  TouchableOpacity
} from 'react-native';

import Home from './Home';

export default class Prof extends Component{

     constructor(){
      super()
   }

    render(){
        return (

             <Navigator
               initialRoute = {{ name: 'Home', title: 'Home' }}
               renderScene = { this.renderScene }
               navigationBar = {
               <Navigator.NavigationBar
                  style = { styles.navigationBar }
                  routeMapper = { NavigationBarRouteMapper } />
            }
         />

            );
    }

 renderScene(route, navigator) {
      if(route.name == 'Home') {
         return (
            <Home
               navigator = {navigator}
               {...route.passProps} 
            />
         )
      }
  }
}


var NavigationBarRouteMapper = {
   LeftButton(route, navigator, index, navState) {
      if(index > 0) {
         return (
         <View>
            <TouchableOpacity
               onPress = {() => { if (index > 0) { navigator.pop() } }}>
               <Text style={ styles.leftButton }>
                  Back
               </Text>
            </TouchableOpacity>
            </View>
         )
      }
      else { return null }
   },
   RightButton(route, navigator, index, navState) {
      if (route.openMenu) return (
         <TouchableOpacity
            onPress = { () => route.openMenu() }>
            <Text style = { styles.rightButton }>
               { route.rightText || 'Menu' }
            </Text>
         </TouchableOpacity>
      )
   },
   Title(route, navigator, index, navState) {
      return (
         <Text style = { styles.title }>
            {route.title}
         </Text>
      )
   }
};

【问题讨论】:

    标签: react-native navigation react-native-router-flux


    【解决方案1】:

    首先,我建议您创建一个 rounder 组件并从那里启动您的应用程序: 像这样的

    import { Scene, Router, ActionConst } from 'react-native-router-flux';
    import First from 'yourRoute';
    const RouterComponent = () => {
        <Router>
            <Scene
                key="First"
                component={First}
                initial />
    
          ... your other scenes
         </Router>
    }
    export default RouterComponent;
    

    然后在您的索引页面或您加载的任何地方添加此组件

    import React, { Component } from 'react'
    import RouterComponent from './Router'
    
    class AppContainer extends Component {
       render() {
         return (
           <RouterComponent />
         );
        }
     }
    
    
    export default AppContainer;
    

    现在您可以从代码中调用它。有任何疑问可以问他们:P

    【讨论】:

      猜你喜欢
      • 2017-01-01
      • 2018-11-17
      • 2023-03-16
      • 1970-01-01
      • 1970-01-01
      • 2019-03-13
      • 2021-04-27
      • 2021-12-02
      • 2018-04-30
      相关资源
      最近更新 更多