导航到屏幕时数据更新

时间:2020-01-10 13:44:34

标签: react-native react-navigation

我有一个关于React-Navigation的问题。

我有两个屏幕:ScreenA和ScreenB。

在ScreenA内部,我有从数据库中获得的数据。

TelaB将数据添加到同一数据库中。

ScreenB将数据添加到数据库后,它导航回到ScreenA,但是数据未更新。我只想在发生这种浏览时才更新数据,以避免不必要的请求。

当ScreenB导航到Screen A时,是否可以从ScreenA调用诸如forceupdate之类的方法?首次安装screenA时,将在componentDidMount方法中获取数据。如果每次我导航到ScreenA时都有一种“重新组装”的方法,那也可以解决。

屏幕位于DrawerNavigation

很抱歉有任何错误,我正在使用翻译器。

1 个答案:

答案 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);