MoreScreenHooksApi

MoreScreenHooksApi()

更多屏幕(带有附加导航链接的屏幕)钩子。实例名称:moreScreenApi

你可以使用这个钩子自定义当用户点击“更多屏幕”时的行为,并根据你的喜好覆盖默认功能。

构造函数

新MoreScreenHooksApi()

例子
externalCodeSetup.moreScreenApi.METHOD_NAME

方法

setNavigationHandler(navigationHandler)

设置功能,覆盖默认的“更多屏幕”导航功能。每当单击“更多屏幕”中的菜单项时,此钩子就会被调用。例如,您可以配置用户点击菜单项后的行为。

参数:
的名字 类型 描述
navigationHandler MoreScreenNavigationCallback
例子
...import {Linking} from "react-native";import {NavigationActions} from "react-navigation";export const applyCustomCode = externalCodeSetup => {const defaultNavigateTo = (navigation, routeName, menuItem, userId) =>{//尝试使用React Native的链接函数基于不同的条件…如果(菜单项。type === "page" ||type === "custom" || (menuItem. txt)type === "post_type" && menuItem。对象=== "page")) && menuItem。& & menuItem.data数据。open_external) {link . canopenurl (menuItem.data.link) .then(canOpen => {if (canOpen) {link . openurl (menuItem.data.link);}}) .catch(错误=>{警告。alert("There was a problem", "This page cannot be opened."); }); } //Otherwise, navigate to appropriate screen else { navigation.dispatch( NavigationActions.navigate({ routeName: menuItem.label === "Photos" ? "GlobalPhotos" : routeName, params: { item: menuItem, userId } }) ); } } } externalCodeSetup.moreScreenApi.setNavigationHandler(defaultNavigateTo);

setTabsList(tabsList)

您可以使用此钩子在“更多”屏幕中添加或修改现有的选项卡。

参数:
的名字 类型 描述
tabsList TransformMoreScreenListCallback
例子

在“更多屏幕”项目中添加一个调用注销操作的新项目

...import {logout} from "@src/actions/auth" export const applyCustomCode = externalCodeSetup =>setabslist ((section, dispatch)) => {return[…]section, {label: "AUTH",屏幕:[{item: {label: "Logout", icon: {uri: require("@src/assets/img/ Logout .png"), tint_color: ' #000000 ', monochrome: true, icon_style: ' outline ',}, onPress: () => dispatch(Logout ()), hasNavArrow: false}, routeName: "Logout"}]}})}

创建自己的项目组件

import {logout} from "@src/actions/auth" export const applyCustomCode = externalCodeSetup => {const CustomComponent = (dispatch) => {return   dispatch(logout())}>  logout   } externalCodeSetup.moreScreenApi。setabslist ((section, dispatch)) => {return[…]section, {screen: [{item: {component: () => CustomComponent(dispatch)}}]}})}
Baidu