React Native Router Flux 不显示屏幕
React Native Router Flux not Showing Screen
我试图通过 react-native-router-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 模拟器屏幕:
React 开发工具:
Package.json:
请帮忙。
这太疯狂了。花了2个小时调试。弄清楚组件不应该是无状态的,你必须将它定义为 class 扩展 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;
我认为这不是无状态组件的问题,我向包裹 <RouterComponent>
的 <View>
组件添加了 flexbox 样式,它在我的 Android 模拟器上工作,简单地删除 <RouterComponent>
周围的 <View>
包装器也可以工作:
class App extends Component {
render() {
return (
<Provider store={createStore(reducers, {}, applyMiddleware(ReduxThunk))}>
<View style={{ flex: 1 }}>
<RouterComponent />
</View>
</Provider>
);
}
}
刚刚为包装组件 RouterComponent
添加了 flexbox 样式到 View
。这个想法也适用于我的 Android 模拟器。
或者您可以删除组件 View
,例如:
class App extends Component {
componentWillMount() {
// Initialize Firebase
}
render() {
return (
<Provider store={createStore(reducers, {}, applyMiddleware(ReduxThunk))}>
<RouterComponent />
</Provider>
);
}
}
希望能帮到你
我们在 app.js 中多次使用
container: {
backgroundColor: '#455e64',
flex : 1,
alignItems: 'center',
justifyContent: 'center',
}
alignItems: 'center',
所以我们可以得到同样的错误
我们只需要从样式中删除 alignItems:'center',它将解决您的问题。
container: {
backgroundColor: '#455e64',
flex : 1,
justifyContent: 'center',
}
我试图通过 react-native-router-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 模拟器屏幕:
React 开发工具:
Package.json:
请帮忙。
这太疯狂了。花了2个小时调试。弄清楚组件不应该是无状态的,你必须将它定义为 class 扩展 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;
我认为这不是无状态组件的问题,我向包裹 <RouterComponent>
的 <View>
组件添加了 flexbox 样式,它在我的 Android 模拟器上工作,简单地删除 <RouterComponent>
周围的 <View>
包装器也可以工作:
class App extends Component {
render() {
return (
<Provider store={createStore(reducers, {}, applyMiddleware(ReduxThunk))}>
<View style={{ flex: 1 }}>
<RouterComponent />
</View>
</Provider>
);
}
}
刚刚为包装组件 RouterComponent
添加了 flexbox 样式到 View
。这个想法也适用于我的 Android 模拟器。
或者您可以删除组件 View
,例如:
class App extends Component {
componentWillMount() {
// Initialize Firebase
}
render() {
return (
<Provider store={createStore(reducers, {}, applyMiddleware(ReduxThunk))}>
<RouterComponent />
</Provider>
);
}
}
希望能帮到你
我们在 app.js 中多次使用
container: {
backgroundColor: '#455e64',
flex : 1,
alignItems: 'center',
justifyContent: 'center',
}
alignItems: 'center',
所以我们可以得到同样的错误 我们只需要从样式中删除 alignItems:'center',它将解决您的问题。
container: {
backgroundColor: '#455e64',
flex : 1,
justifyContent: 'center',
}