我有一个关于React-Navigation的问题。
我有两个屏幕:ScreenA和ScreenB。
在ScreenA内部,我有从数据库中获得的数据。
TelaB将数据添加到同一数据库中。
ScreenB将数据添加到数据库后,它导航回到ScreenA,但是数据未更新。我只想在发生这种浏览时才更新数据,以避免不必要的请求。
当ScreenB导航到Screen A时,是否可以从ScreenA调用诸如forceupdate之类的方法?首次安装screenA时,将在componentDidMount方法中获取数据。如果每次我导航到ScreenA时都有一种“重新组装”的方法,那也可以解决。
屏幕位于DrawerNavigation
中很抱歉有任何错误,我正在使用翻译器。
答案 0 :(得分:1)
您最好的办法是使用redux
,并在一个位置上保存多屏所需的最常用数据。
您可以在redux的官方网站https://redux.js.org/
上进行了解。如果您只需要在这两个屏幕之间进行通信,则可以使用react-navigation
完成另一种解决方案。
react-navigation
提供了一个名为withNavigationFocus
的HOC。将HOC添加到您的screenA组件中,您可以检查它是否从模糊状态转变为焦点状态
例如:
import {withNavigationFocus} from react-navigation;
...
...
...
componentDidUpdate = prevProps => {
if( prevProps.isFocused !== this.props.isFocused && this.props.isFocused === true){
//Update your data in screenA triggering a setState()
}
}
...
...
...
export default withNavigationFocus(ScreenA);