Сегменты могут быть настроены как react-navigation
отдельный экран, разделенный на несколько компонентов, которые могут быть отображены по требованию.
Пример
(с использованием компонентов на основе базы)
state = {
activePage:1,
}
selectComponent = (activePage) => () => this.setState({activePage})
_renderComponent = () => {
if(this.state.activePage === 1)
return <Component1/> //... Your Component 1 to display
else
return <Component2/> //... Your Component 2 to display
}
render() {
return (
<Container>
<Header>
<Left />
<Body>
<Segment>
<Button active={this.state.activePage === 1}
onPress={this.selectComponent(1)}><Text>Component 1</Text></Button>
<Button active={this.state.activePage === 2}
onPress= {this.selectComponent(2)}><Text>Component 2</Text></Button>
</Segment>
</Body>
<Right/>
</Header>
<Content padder>
{this._renderComponent()}
</Content>
</Container>
)
}
Вы можете настроить его, чтобы добавить больше компонентов в зависимости от условий, указанных выше
Редактировать
Предполагается, что вы переходите к определенному экрану, который также содержит Segment
, на кнопке какого-либо элементанажмите, что вы можете сделать
this.props.navigation.navigate('OtherSegmentScreen', {activePage: this.state.activePage})
И на этой странице получите props
как
const {navigate} = this.props.navigation
const previousActiveSegment = navigate.getParams('activePage', '1') //... 1 is default value that you can set