这是我的代码,它实现了一个简单的标签导航器。在其中一个屏幕中,每次用户通过标签导航器选择屏幕时,我都需要向API发出请求并更新状态。如下所示,componentDidMount
第一次执行后未执行(第二次尝试执行失败)。
export default class UserAccount extends Component {
constructor(props) {
super(props)
this.state = {
sample:''
}
}
componentDidMount = async () => {
// Api fetch
// ...
await this.setState({sample: api.response})
}
render() {
return (
...
)
}
}
标签导航器为:
<Tab.Navigator>
<Tab.Screen options={{
tabBarIcon: ({ focused }) => (
<MaterialIcons name="home" color={focused ? activeTintLabelColor : inactiveTintLabelColor} size={23} />
),
}} name="Home" component={Home} />
<Tab.Screen options={{
tabBarIcon: ({ focused }) => (
<FontAwesome5 name="wallet" color={focused ? activeTintLabelColor : inactiveTintLabelColor} size={20} />
)
}} name="Wallets" component={UserWallets} />
</Tab.Navigator>
我该怎么做才能让标签导航器重新渲染导致执行componentDidMount
的屏幕组件?
致谢。