Mar*_*ães 5 javascript react-native react-navigation
我有问题this.props.navigation.state.params。
我有一个抽屉导航器,它有一些菜单,一些菜单有子菜单,例如,当我点击一个子菜单时,应用程序会加载一个“类别”。“类别”菜单中的所有子菜单都将重定向到同一屏幕,但每个人都有自己的 ID 和标题。
重定向是用这一行进行的:
this.props.navigation.navigate(menu.route, { submenu });
问题是,当我第一次导航到此屏幕时,我从中获取 idthis.props.navigation.state.params.submenu.id并发送请求以加载此特定 id 的内容。但是,当我打开抽屉并点击同一“类别”菜单的另一个子菜单时,this.props.navigation.state.params.submenu对象中的 id 和标题会发生变化,但我无法发送新请求以使用新 id 获取数据。我第一次使用 componentDidMount() 来获取数据(我知道 componentDidMount() 只触发一次),但我找不到我可以使用什么其他生命周期方法来调度这个新请求。
我将粘贴下面的代码部分:
SideMenu.js(自定义抽屉菜单组件):
onHandleSubMenuPress = (menu, submenu) => {
this.props.navigation.navigate(menu.route, { submenu });
}
Run Code Online (Sandbox Code Playgroud)
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);
}
}
Run Code Online (Sandbox Code Playgroud)
我对页面有一些控制,我正在使用它在平面列表上无限滚动,但我几乎可以肯定这不会有问题,因为我需要在导航参数设置时将这两个道具重置为默认状态改变。
谁能帮我解决这个问题?
小智 0
我不知道这是否有帮助,但尝试一下:
resetAction = StackActions.reset({
index: 0,
actions: [
NavigationActions.navigate({ routeName: menu.route, params:{item:submenu} }),
],
});
this.props.navigation.dispatch(resetAction);
Run Code Online (Sandbox Code Playgroud)
重置导航,您每次都可以使用 componentDidMount
| 归档时间: |
|
| 查看次数: |
1568 次 |
| 最近记录: |