簡體   English   中英

當 this.props.navigation.state.params 改變時 React Navigation 檢查

[英]React Navigation check when this.props.navigation.state.params change

我對this.props.navigation.state.params有問題。

我有一個抽屜導航器,它有一些菜單,一些菜單有子菜單,例如,當我點擊一個子菜單時,應用程序會加載一個“類別”。 “類別”菜單中的所有子菜單都將重定向到同一屏幕,但每個人都有自己的 ID 和標題。

重定向是用這一行進行的: this.props.navigation.navigate(menu.route, { submenu });

問題是,當我第一次導航到這個屏幕時,我從this.props.navigation.state.params.submenu.id獲取 id 並發送一個請求來加載這個特定 id 的內容。 但是,當我打開抽屜並點擊同一“類別”菜單的另一個子菜單時, this.props.navigation.state.params.submenu對象中的 id 和標題會發生變化,但我無法向使用新的 id 獲取數據。 我第一次使用 componentDidMount() 來獲取數據(我知道 componentDidMount() 只觸發一次),但我找不到我可以使用什么其他生命周期方法來調度這個新請求。

我將粘貼下面的代碼部分:

SideMenu.js(自定義抽屜菜單組件):

onHandleSubMenuPress = (menu, submenu) => {
    this.props.navigation.navigate(menu.route, { submenu });
}

Categories.js(接收 props 和加載數據的屏幕):

componentDidMount() {
    this.loadMorePosts();
}

loadMorePosts = () => {
    const { id } = this.props.navigation.state.params.submenu;

    if (this.props.nextPage <= this.props.totalPages) {
        this.props.loadCategoryPosts(id, this.props.nextPage);
    }
}

我對頁面有一些控制,我正在使用它在平面列表上無限滾動,但我幾乎可以肯定這不會有問題,因為我需要在導航參數設置時將這兩個道具重置為默認狀態改變。

誰能幫我解決這個問題?

我不知道這是否可以幫助但試一試:

   resetAction = StackActions.reset({
    index: 0,
    actions: [
        NavigationActions.navigate({ routeName: menu.route, params:{item:submenu} }),

    ],
  });
this.props.navigation.dispatch(resetAction);

重置導航你可以每次都使用 componentDidMount

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM