React Native:使用React导航时,屏幕不会重新呈现或触发useEffect()。

时间:2019-11-12 01:34:58

标签: reactjs react-native react-native-android

当导航来自特定页面时,我需要刷新屏幕。但是,在页面导航时,不会触发useEffect方法或任何其他方法。我了解,由于状态或道具未更改,因此未触发该方法。但是有没有一种触发方式,请告诉我。我也尝试了didFocus,但是每次屏幕聚焦时都会刷新,但是我希望仅在来自特定屏幕时刷新。

1 个答案:

答案 0 :(得分:0)

我还没有使用过useEffect,但是我通过react-navigation激活了道具的更改。

在要刷新的屏幕上,添加didFocus侦听器:

browser.find_element_by_css_selector('[name="drop-down-list"]')

当您导航到该屏幕并希望刷新时:

this.props.navigation.addListener(
            'didFocus',
            payload => {
                console.debug('didFocus', payload);
                if (this.props.navigation.getParam('shouldRefresh')) {
                    this.props.navigation.setParams({ shouldRefresh: false });
                    // Do something
                }
            }
        );

希望有帮助。