gpt4 book ai didi

javascript - 如何在标题中按下 goBack 图标时重新渲染组件

转载 作者:行者123 更新时间:2023-11-30 14:00:47 24 4
gpt4 key购买 nike

我正在尝试在按下 goBack 后重新渲染组件。通过使用 goBack 我可以返回页面,但该页面不会刷新。我该如何解决?goBack 之后我必须调用一些 api,现在在 back non of the function 被调用之后。我只能在页面刷新或重新呈现时调用。
例如,从第 1 页标题单击后退箭头图标(即 goBack 功能)继续第 1 页,在转到第 1 页后它应该刷新。

<View style={{ flexDirection: 'row' }} hasSubtitle={!!subtitle}>
<Left style={{ flexGrow: 1 ,top: -10}}>
<Button transparent onPress={() => {
this.props.navigation.goBack();
}}>
<Icon name="arrow-back"/>
</Button>
</Left>
<Body
style={{ textAlign: 'center', width: '100%', flexGrow: 2, alignItems: 'center', justifyContent: 'center' }}>
{!!title && <Title style={{ color: '#000' }}>{title}</Title>}
{!!subtitle &&
<Subtitle style={{ color: '#000' }}>
{icon && <IconSmall icon={icon} type="MaterialCommunityIcons"/>}
{subtitle}
</Subtitle>}
</Body>
<Right style={{ flexGrow: 1, marginTop: 2 }}></Right>
</View>

谢谢

最佳答案

React Navigation 具有名为“NavigationEvents”的事件监听器组件,可用于了解屏幕何时处于事件状态或非事件状态。

您可以像这样在您的代码中实现它:

import { NavigationEvents } from 'react-navigation';

<View style={{ flexDirection: 'row' }} hasSubtitle={!!subtitle}>

<NavigationEvents
// try only this. and your component will auto refresh when this is the active component
onWillFocus={payload => this.setState({})}
// other props
onDidFocus={payload => console.log('did focus',payload)}
onWillBlur={payload => console.log('will blur',payload)}
onDidBlur={payload => console.log('did blur',payload)}
/>
<Left style={{ flexGrow: 1 ,top: -10}}>
<Button transparent onPress={() => {
this.props.navigation.goBack();
}}>
<Icon name="arrow-back"/>
</Button>
</Left>
<Body
style={{ textAlign: 'center', width: '100%', flexGrow: 2, alignItems: 'center', justifyContent: 'center' }}>
{!!title && <Title style={{ color: '#000' }}>{title}</Title>}
{!!subtitle &&
<Subtitle style={{ color: '#000' }}>
{icon && <IconSmall icon={icon} type="MaterialCommunityIcons"/>}
{subtitle}
</Subtitle>}
</Body>
<Right style={{ flexGrow: 1, marginTop: 2 }}></Right>
</View>

导航事件引用:react-navigation navigation events

关于javascript - 如何在标题中按下 goBack 图标时重新渲染组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56342369/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com