![](/img/trans.png)
[英]this.props.navigation.state.params is undefined in React Native
[英]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.