Javascript 当this.props.Navigation.state.params更改时响应导航检查

Javascript 当this.props.Navigation.state.params更改时响应导航检查,javascript,react-native,react-navigation,Javascript,React Native,React Navigation,我对这个.props.navigation.state.params有问题 我有一个抽屉导航器,它有一些菜单,一些菜单有子菜单,例如,当我点击一个子菜单时,应用程序会加载一个“类别”。“类别”菜单中的所有子菜单将重定向到同一屏幕,但每个人都有自己的id和标题 使用以下行进行重定向: this.props.navigation.navigate(menu.route,{submenu}) 问题是,当我第一次导航到此屏幕时,我从this.props.navigation.state.params.s

我对
这个.props.navigation.state.params有问题

我有一个抽屉导航器,它有一些菜单,一些菜单有子菜单,例如,当我点击一个子菜单时,应用程序会加载一个“类别”。“类别”菜单中的所有子菜单将重定向到同一屏幕,但每个人都有自己的id和标题

使用以下行进行重定向:
this.props.navigation.navigate(menu.route,{submenu})

问题是,当我第一次导航到此屏幕时,我从
this.props.navigation.state.params.submenu.id
获取id,并发送请求以加载此特定id的内容。但是,当我打开抽屉并点击同一“Category”菜单的另一个子菜单时,
this.props.navigation.state.params.子菜单
对象中的id和标题会更改,但我无法发送新请求以获取具有新id的数据。我第一次使用componentDidMount()获取数据(我知道componentDidMount()只触发一次),但是我找不到其他可以用来分派这个新请求的生命周期方法

我将粘贴以下代码部分:

SideMenu.js(自定义抽屉菜单组件):

Categories.js(接收道具和加载数据的屏幕):

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

如果(this.props.nextPage我不知道这是否有帮助,但请尝试一下:

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

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

重置导航每次都可以使用componentDidMount

是否尝试过componentWillReceiveProps?是的,我尝试过,但是
此.props.navigation.state.params.子菜单中的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);