Я пытаюсь настроить панель вкладок со значками, но мой экран отображает только текст сцены без значков:
Чтобы упростить задачу, я создал функцию, которая принимает реквизиты имени иконки и выводит элемент Icon
с именем TabIcon
, но эта функция не запускается. Я проверил это, поместив предупреждение в функцию. Я удалил большинство сцен и оставил только submit
, чтобы упростить код, он находится внизу кода. Вот мой router.js
:
import React from 'react';
import { Scene, Router, ActionConst, Stack, Modal, Tabs } from 'react-native-router-flux';
import { View, Text, Icon } from 'react-native-elements';
//Splash Component
import Splash from '../components/Splash/Splash';
//Authentication Scenes
//removed import screens to simplify
import { StackNavigator } from 'react-navigation';
//Import Store, actions
import store from '../redux/store'
import { checkLoginStatus } from "../modules/auth/actions";
import { color, navTitleStyle } from "../styles/theme";
function TabIcon(props) {
return (
<View style={styles.container}>
<Icon
color={props.tintColor}
name={props.iconName}
size={26}
/>
</View>
)
}
const styles = {
container: {
width: 48,
height: 42,
padding: 5,
justifyContent: 'center',
alignItems: 'center',
}
};
export default class extends React.Component {
constructor() {
super();
this.state = {
isReady: false,
isLoggedIn: false
}
}
componentDidMount() {
let _this = this;
store.dispatch(checkLoginStatus((isLoggedIn) => {
_this.setState({isReady: true, isLoggedIn});
}));
}
render() {
if (!this.state.isReady)
return <Splash/>
return (
<Router>
<Scene key="root" hideNavBar
navigationBarStyle={{backgroundColor: "#fff"}}
titleStyle={navTitleStyle}
backButtonTintColor={color.black}
>
<Stack key="Main" tabs={true} initial={this.state.isLoggedIn}>
//here's the scene that uses the TabIcon function//////////////////
<Scene key="Submit" component={Submit} title="Submit" icon={TabIcon} iconName='timer' />
</Stack>
</Scene>
</Router>
)
}
}