我是本地反应的新手。我使用了功能组件而不是工作正常的类。在这里我不能使用构造函数、状态、生命周期方法等。所以我想创建一个类而不是函数,但没有运气。
功能组件(index.android.js(
import React, { Component } from 'react';
import {
AppRegistry,
StyleSheet,
Text,
Button,
View
} from 'react-native';
import {
TabNavigator
} from 'react-navigation';
import MyHomeScreen from './MyHomeScreen';
import MyNotificationsScreen from './MyNotificationsScreen';
const TabNavigation = TabNavigator({
Home: {
screen: MyHomeScreen,
},
Notifications: {
screen: MyNotificationsScreen,
},
}, {
tabBarOptions: {
activeTintColor: '#e91e63',
},
});
AppRegistry.registerComponent('TabNavigation', () => TabNavigation);
我的主屏幕.js
export default class MyHomeScreen extends React.Component {
static navigationOptions = {
tabBarLabel: 'Home',
tabBarIcon: ({ tintColor }) => (
<Image
source={require('./chats-icon.png')}
/>
),
};
render() {
return (
<Button
onPress={() => this.props.navigation.navigate('Notifications')}
title="Go to notifications"
/>
);
}
}
我的通知屏幕.js
export default class MyNotificationsScreen extends React.Component {
static navigationOptions = {
tabBarLabel: 'Notifications',
tabBarIcon: ({ tintColor }) => (
<Image
source={require('./notif-icon.png')}
/>
),
};
render() {
return (
<Button
onPress={() => this.props.navigation.goBack()}
title="Go back home"
/>
);
}
}
使用类:我想按如下方式使用类。如何使其像上面名为 TabNavigation 的功能组件一样工作?
import React, { Component } from 'react';
import {
AppRegistry,
StyleSheet,
Text,
Button,
View
} from 'react-native';
import {
TabNavigator
} from 'react-navigation';
import MyHomeScreen from './MyHomeScreen';
import MyNotificationsScreen from './MyNotificationsScreen';
export default class TabNavigation extends Component {
render() {
return (
<View>
//what to do here
</View>
);
}
}
如果要
在顶层呈现TabNavigation,那么方法就像第一个示例一样。 TabNavigator()
构造一个组件。
从您的问题来看,您的用例似乎不清楚,但是如果您想要一个顶级类,您可以将 TabNavigation 包装在一个类中:
// ...
render() {
return (
<TabNavigation />
);
}