Stack Navigator适用于Android但iOS破解

时间:2018-02-07 08:41:25

标签: react-native react-navigation react-native-ios stack-navigator

我们的React Native Project,使用反应导航Stack导航器。它完全在Android中运行但在ios中它给出了一个错误,“原始文本必须以明确的方式包装”当我们尝试在Page之间导航时。

在ios中只有第一页加载。例如,默认'主页'是第一页,因此android和ios模拟器都打开第一页。然后,如果我们尝试在android navigaton工程中导航它们,但在ios中我们得到“Raw text Error”。

如果我们改变第一页的堆栈导航器ios也正确加载了第一页但没有按预期在它们之间导航。

我们认为导航页面可能有问题,因此我们创建了一个空白页面并导航到那里,但问题仍在iOS中继续。

我很高兴听到建议。

这就是我们在页面之间导航的方式:

this.props.navigation.navigate('ProfileSayfa');

这是我们的index.android.js以及index.android.ios:

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

import {StackNavigator,DrawerNavigator } from "react-navigation";

import LoginPage from "./src/pages/login-page/login-page";
import MainPage from "./src/pages/main-page/main-page";
import MekanAraSonuc from "./src/pages/MekanAra/MekanAraSonuc";
import MekanAra from "./src/pages/main-page/tabs/mekan_ara";
import NewsTab from "./src/pages/main-page/tabs/news-tab";
import StartPage from "./src/pages/start-page/start-page";
import AllMekan from "./src/pages/AllMekan/AllMekan";
import MekanSayfa from "./src/pages/MekanSayfa/MekanSayfa";
import RezervasyonSayfa from "./src/pages/MekanSayfa/RezervasyonSayfa";
import FirsatSayfa from "./src/pages/MekanSayfa/FirsatSayfa";
import EtkinlikSayfa from "./src/pages/MekanSayfa/EtkinlikSayfa";
import ProfileSayfa from "./src/pages/MekanSayfa/ProfileSayfa";
import EtkinlikSonuc from "./src/pages/AllMekan/EtkinlikSonuc";
import FirsatlarSonuc from "./src/pages/AllMekan/FirsatSonuc";
import IconME from 'react-native-vector-icons/FontAwesome';
import Drawer from "./src/pages/MyComponents/Drawer";
import SearchForm from "./src/pages/MyComponents/SearchForm";
import RezervasyonForm from "./src/pages/Forms/RezervasyonForm";
import FirsatForm from "./src/pages/Forms/FirsatForm";
import CalendarListView from "./src/pages/Forms/CalendarListView";


export default class moreAwesome extends Component {
  render() {

        return (
            <LoginApp

                ref={nav => {
                    this.navigator = nav;

                }}
            />
        );
  }
}

const LoginApp = StackNavigator({


            MainPage: {
              screen: MainPage,

            },
            LoginPage: { screen: LoginPage },
            MekanAraSonuc:{screen:MekanAraSonuc},
            MekanAra:{screen:MekanAra},
            NewsTab:{screen:NewsTab},
            AllMekan:{screen:AllMekan},
            MekanSayfa:{screen:MekanSayfa},
            FirsatSayfa:{screen:FirsatSayfa},
            EtkinlikSayfa:{screen:EtkinlikSayfa},
            EtkinlikSonuc:{screen:EtkinlikSonuc},
            FirsatlarSonuc:{screen:FirsatlarSonuc},
            ProfileSayfa:{screen:ProfileSayfa},
            RezervasyonSayfa:{screen:RezervasyonSayfa},
            SearchForm:{screen:SearchForm},
            RezervasyonForm:{screen:RezervasyonForm},
            FirsatForm:{screen:FirsatForm},
            CalendarListView:{screen:CalendarListView},

        });

AppRegistry.registerComponent('myproje', () => moreAwesome);

1 个答案:

答案 0 :(得分:0)

显然,当您为页面创建静态导航选项时,“title”在Android中可以是空字符串,但在iOS上则不是。 当我们改变这个时,

  static navigationOptions = ({ navigation }) => {
            return {
                title: '',
                };
            };

对此:

当我们改变这个时,

 static navigationOptions = ({ navigation }) => {
        return {
            title: ' ',
            };
        };

另外要小心初始页面给出的错误不是目标页面!