在 Press 上更改片段内容
Changing segment content onPress
我有段,我希望它们充当标签。我尝试使用每个段的 react-navigation
onPress
,但它看起来不太好。
我希望片段在顶部保持固定,点击每个片段时内容应该改变 或者调用特定组件而不重新加载或注意到屏幕已更改。
<Segment>
<Button first>
<Text>Puppies</Text>
</Button>
<Button>
<Text>Kittens</Text>
</Button>
<Button last active>
<Text>Cubs</Text>
</Button>
</Segment>
<Content>
<Text>Awesome segment</Text>
</Content>
片段可以自定义为 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
我有段,我希望它们充当标签。我尝试使用每个段的 react-navigation
onPress
,但它看起来不太好。
我希望片段在顶部保持固定,点击每个片段时内容应该改变 或者调用特定组件而不重新加载或注意到屏幕已更改。
<Segment>
<Button first>
<Text>Puppies</Text>
</Button>
<Button>
<Text>Kittens</Text>
</Button>
<Button last active>
<Text>Cubs</Text>
</Button>
</Segment>
<Content>
<Text>Awesome segment</Text>
</Content>
片段可以自定义为 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