1

私はreact-native-router-fluxモジュール経由でロードしようとしているビューを持っています。ReactネイティブルータFluxが画面を表示しない

ただし、エミュレータでは画面が表示されません。しかし、私は自分のコンポーネントをreact-devツールで見ることができます。

Androidエミュレータではエラーは表示されず、空の画面が表示されます。詳細は以下のとおりです。

Test.js:

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

const Test =() => { 
    return (
     <View style={{margin: 128}}> 
     <Text>This is PageTwo!</Text> 
     </View> 
    ); 
}; 

export default Test; 

マイルータ:Router.js

import React, { Component } from 'react'; 
import { Router, Scene } from 'react-native-router-flux'; 
import LoginForm from './components/LoginForm'; 
import Test from './components/Test'; 

class RouterComponent extends Component { 
    render() { 
    return (
     <Router> 
     <Scene key="root" > 
      <Scene key="pageOne" component={Test} title="PageOne" initial={true} /> 
      <Scene key="pageTwo" component={LoginForm} title="PageOne" initial={false} /> 
     </Scene> 
     </Router> 
    ); 
    } 
} 

export default RouterComponent; 

マイアプリのローダ:

import React, { Component } from 'react'; 
import { View } from 'react-native'; 
import { Provider } from 'react-redux'; 
import { createStore, applyMiddleware } from 'redux'; 
import firebase from 'firebase'; 
import ReduxThunk from 'redux-thunk'; 
import reducers from './reducers'; 
import RouterComponent from './Router'; 
import LoginForm from './components/LoginForm'; 

class App extends Component { 
    componentWillMount() { 
     // Initialize Firebase 

    } 
    render() { 
     return (
      <Provider store={createStore(reducers, {}, applyMiddleware(ReduxThunk))}> 
       <View> 
        <RouterComponent /> 
       </View> 
      </Provider> 
     ); 
    } 
} 

export default App; 

Androidのエミュレータ画面を:

enter image description here

は、開発ツールに反応:

enter image description here

Package.json:

enter image description here

助けてください。

+0

ここに同じです。ソースコードを調べようとしています... –

答えて

3

私はステートレスなコンポーネントの問題であるとは思わない、私はラップ<View>コンポーネントにフレキシボックスのスタイリングを追加しました

0123: <RouterComponent>周り、それもうまくいく単純 <RouterComponent>周り <View>ラッパーを取り除く、私のAndroidのエミュレータ上で動作します
class App extends Component { 
    render() { 
    return (
     <Provider store={createStore(reducers, {}, applyMiddleware(ReduxThunk))}> 
     <View style={{ flex: 1 }}> 
      <RouterComponent /> 
     </View> 
     </Provider> 
    ); 
    } 
} 
+0

ありがとうございます。なぜViewが問題を引き起こしたのかを詳しく教えてください。私はそれがちょっと奇妙だと思う。私はViewがコンポーネントを保持するコンテナのようだと思った。 :( –

+0

男...私はどれくらい感謝しているのか分かりませんが、私のコードで何が間違っているのか理解しようと約7時間を費やしました –

0

これは非常識です。 2時間のデバッグを費やしました。コンポーネントがステートレスであるべきではないことが分かったので、それをComponentに拡張するクラスとして定義する必要があります。

は、だからあなたのTest.jsの代わりに:

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

const Test =() => { 
    return (
     <View style={{margin: 128}}> 
      <Text>This is PageTwo!</Text> 
     </View> 
    ); 
}; 

export default Test; 

だけで実行します。

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

class Test extends Component { 
    render() { 
     return (
      <View style={{margin: 128}}> 
       <Text>This is PageTwo!</Text> 
      </View> 
     ); 
    } 
}; 

export default Test; 
+0

アプリケーション内のビュータグが原因でした。 –

0

ラップコンポーネントRouterComponentの場合はViewにフレックスボックススタイリングを追加しました。私のAndroidエミュレータでもこのアイデアはうまくいきます。私はアイデアがあなたを助けことを願って

class App extends Component { 
componentWillMount() { 
    // Initialize Firebase 

} 
render() { 
    return (
     <Provider store={createStore(reducers, {}, applyMiddleware(ReduxThunk))}> 
      <RouterComponent /> 
     </Provider> 
    ); 
    } 
} 

: それとも、のようなコンポーネントViewを削除することができます。

関連する問題