Я новичок в реакции нативной разработки, пытаюсь реализовать нативную базовую навигацию в нижнем колонтитуле, но я не могу заставить ее работать.Теперь позвольте мне объяснить, что я пробовал до сих пор.
Это класс, в котором я реализовал навигацию нижнего колонтитула:
import React, { Component } from 'react';
// import { FlatList,
// ActivityIndicator,
// StyleSheet,
// View,
// TouchableNativeFeedback,
// TouchableHighlight,
// Text,
// ListView,
// Button
// } from 'react-native';
import { AppRegistry, StyleSheet, ActivityIndicator, ListView, View, Alert,Image,Drawer , Title,Platform} from 'react-native';
import { Container, Header, Content, Footer, FooterTab, Button, Text } from 'native-base';
import First from './First';
import Sec from './Sec';
//import { Container, Header, Content, Badge, Text, Drawer,Icon } from 'native-base';
import { firebases } from './config/firebase';
import {Sidebar} from './slidebar';
import {AppHeader} from './AppHeader';
//import { Card, CardTitle, CardContent, CardAction, CardButton, CardImage } from 'react-native-material-cards';
const instructions = Platform.select({
ios: 'Press Cmd+R to reload,\n' +
'Cmd+D or shake for dev menu',
android: 'Double tap R on your keyboard to reload,\n' +
'Shake or press menu button for dev menu',
});
const db=firebases.firestore();
const collection = db.collection('Users');
var ds = new ListView.DataSource({ rowHasChanged: (row1, row2) => row1 !== row2 })
export default class Second extends React.Component {
constructor(props) {
super(props);
this.state = {
isLoading: true,
index: 0
}
}
switchScreen(index) {
this.setState({index: index})
}
GetItem (flower_name) {
Alert.alert(flower_name);
}
componentDidMount() {
var array=[];
db
.collection('Users')
.get()
.then(snapshot => {
snapshot
.docs
.forEach(doc => {
array.push({'Email':doc.data().Email,'Password':doc.data().Password});
});
alert(array[0]);
let ds = new ListView.DataSource({rowHasChanged: (r1, r2) => r1 !== r2});
this.setState({
isLoading: false,
dataSource: ds.cloneWithRows(array),
}, function() {
// In this block you can do something with new state.
});
})
.catch((error) => {
console.error(error);
});
}
ListViewItemSeparator = () => {
return (
<View
style={{
height: .5,
width: "100%",
backgroundColor: "#000",
}}
/>
);
}
render() {
let AppComponent = null;
if (this.state.index == 0) {
AppComponent = First
} else {
AppComponent = Sec
}
return (
<Container>
<Header><Title> Header... </Title></Header>
<Content> <AppComponent/> </Content>
<Footer>
<Button onPress={() => this.switchScreen(0) }> First </Button>
<Button onPress={() => this.switchScreen(1) }> Sec </Button>
</Footer>
</Container>
);
}}
const styles = StyleSheet.create({
MainContainer :{
// Setting up View inside content in Vertically center.
justifyContent: 'center',
flex:1,
margin: 5,
paddingTop: (Platform.OS === 'ios') ? 20 : 0,
},
imageViewContainer: {
width: '50%',
height: 100 ,
margin: 10,
borderRadius : 10
},
textViewContainer: {
textAlignVertical:'center',
width:'50%',
padding:20
}
});
Это первый класс:
import React, { Component } from "react";
import { Container, Header, Content, Card, CardItem, Text, Body } from "native-base";
export default class First extends Component {
render() {
return (
<Container>
<Header />
<Content>
<Card>
<CardItem header button onPress={() => alert("This is Card Header")}>
<Text>NativeBase</Text>
</CardItem>
<CardItem button onPress={() => alert("This is Card Body")}>
<Body>
<Text>
Click on any carditem
</Text>
</Body>
</CardItem>
<CardItem footer button onPress={() => alert("This is Card Footer")}>
<Text>GeekyAnts</Text>
</CardItem>
</Card>
</Content>
</Container>
);
}
}module.exports = First
Это класс sec:
import React, { Component } from 'react';
import { Container, Header, Content, Button, Text } from 'native-base';
export default class Sec extends Component {
render() {
return (
<Container>
<Header />
<Content>
<Button bordered light>
<Text>Light</Text>
</Button>
<Button bordered>
<Text>Primary</Text>
</Button>
<Button bordered success>
<Text>Success</Text>
</Button>
<Button bordered info>
<Text>Info</Text>
</Button>
<Button bordered warning>
<Text>Warning</Text>
</Button>
<Button bordered danger>
<Text>Danger</Text>
</Button>
<Button bordered dark>
<Text>Dark</Text>
</Button>
</Content>
</Container>
);
}
}module.exports = Sec
Ошибка, которую я получаю: невозможно добавить дочерний элемент, у которого нет родителя-йоганода, без функции меры (попробуйте добавить shadownode реагирования необработанного текста в макетshadownode)
Как решить эту проблему, я делаю любую ошибку, пожалуйста, поделитесь любым решением для этого.Заранее спасибо.