方法
#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)}}]}})}