CourseSingleApi

CourseSingleApi()

单航线屏幕挂钩。实例名称:courseSingleApi

挂钩,以修改个别课程的页面。

构造函数

新CourseSingleApi()

例子
externalCodeSetup.courseSingleApi.METHOD_NAME

成员

hideCategoryTags

弃用:

setShowLessonsCount

弃用:

setShowQuizzesCount

弃用:

方法

setCourseMaterialsComponent(课程材料部分)

设置一个组件,覆盖在BuddyBoss网站> Learndash LMS > Courses > [Selected course] > Settings中添加的课程材料字段的内容。

参数:
的名字 类型 描述
CourseMaterialsComponent React.ComponentType。<CourseMaterialsProps>
例子

根据登录的用户使用不同的组件

//在custom_code/components/CourseMaterial.js中导入React, {useState} from ' React ';import {View, Text, Alert, Dimensions} from 'react-native';import {useSelector} from "react-redux";从"react-native-render-html"导入HTML;import {WebView} from 'react-native-webview';import {documentFilename, isInExtensionList, htmlHandleClicks} from "@src/utils";import {previewDocument} from "@src/utils/previewFiles";Const ent = require("ent");const DEVICE_WIDTH = Dimensions.get("window").width;const CourseMaterial = (props) => {const {tagsStyles, materialsStyles, baseFontStyle, materials, navigation, t} = props; const user = useSelector((state) => state.user.userObject); const online = useSelector((state) => state.network.online); const [opening, setOpening] = useState(false); const [progress, setProgress] = useState(0); const onLinkPress = async (evt, url) => { //Get auth from available screen props const { auth } = navigation.getScreenProps(); //Checks if extension added in url is supported for preview if (isInExtensionList(url)) { return await previewDocument({ url, localName: documentFilename(url), token: auth.token, t, beginCallback: () => { setProgress(0); setOpening(true); }, progressCallback: setProgress, doneCallback: localFile => { setTimeout(() => { setOpening(false); }, 1000); }, failCallback: () => { setTimeout(() => { setOpening(false); }, 1000); } }); } if (online) { //If online, handle urls using app's helper function return htmlHandleClicks(navigation, false)(evt, url); } Alert.alert(t("course:materialRequiresConnection")); }; return user.id === 1 ? //Use a new component for SpecialUserComponent <>  Welcome back {user.name}! We prepared the materials for you.    : //Use app's default component for RegularUserComponent  } export default CourseMaterial; //In custom_code/index.js ... import CourseMaterial from "./components/CourseMaterial"; export const applyCustomCode = externalCodeSetup => { externalCodeSetup.courseSingleApi.setCourseMaterialsComponent((props) =>  ) }

setFilterIncomingCourseProps(筛选即将到来的课程计划)

设置回调函数filterIncomingCourseProps用于过滤进入课程单屏幕组件的道具

参数:
的名字 类型 描述
filterIncomingCourseProps CoursePropsFilterCallback
例子

向传入的课程道具添加日期对象

externalcodeseup . coursesingleap. setfilterincomingcourseprops ((props) => {return{…props, date: new date ()}};

setHeaderAuthorRenderer(渲染器)

设置组件以覆盖默认的课程作者组件。

参数:
的名字 类型 描述
渲染器 React.ComponentType。<HeaderAuthorComponentProps>
例子

除了作者的名字,还要增加更多的细节

//在custom_code/components/CourseAuthor.js中,从'React'导入React;从'React native'导入{View,Text};从“@src/components/AppAvatar”导入AppAvatar;从“@src/components/AppTouchableOpacity”导入apptoucableOpacity;从“@src/utils/CCDataUtil”导入{getBestImageVariant};从“@src/components/hocs/withUserClickHandler”;//使用BuddyBoss HOC更易于导航const CourseAuthor=(props)=>{const{user,global,lightStyle,toUserBasedOnSettings}=props;//由于使用HOC const boundCallback=React.useMoo(()=>toUserBasedOnSettings.bind包装组件,因此可以导航到`user`的配置文件(null,null,user),[user]);//使用BuddyBoss getBestImageVariant帮助函数获取组件const userAvatarUrl=React.UseMoom(()=>!!user?user.avatar_URL?getBestImageVariant(user.avatar_URL,96):user?.avatar?thumb:,[user]);返回{user&&()}{user&(<>)}}使用UserClickHandler导出默认值(CourseAuthor);//在自定义代码/index.js中…从“/components/CourseAuthor”导入CourseAuthor;导出常量applyCustomCode=externalCodeSetup=>{externalCodeSetup.CourseSingelAPI.setHeaderAuthorRenderer((props)=>

设置TransformCourseActionButtons(transformCourseActionButtons)

您可以通过将默认的课程操作按钮替换为首选的操作按钮,来转换开始、购买或继续课程的默认课程操作按钮。

参数:
的名字 类型 描述
transformCourseActionButtons TransformCourseActionButtonsCallback
例子

为课程操作添加更多组件

从“@src/components/Course/CourseActionButton”导入CourseActionButton;导出常量applyCustomCode=externalCodeSetup=>{externalCodeSetup.CourseSingelAPI.setTransformCourseActionButtons((CourseActionBtn、courseVM、t、颜色、全局、产品、导航、startCourse、continueCourse、priceComponentRender)=>{常量信息=要继续课程,请点击下面的按钮const Redirect=导航(“课程屏幕”)}样式={{backgroundColor:“青色”}/>return[Info,CourseActionBtn,Redirect];})
Baidu