From cc52c434ba43625c6ca053972f4e651fbe1ba5b2 Mon Sep 17 00:00:00 2001 From: catchonme Date: Tue, 28 May 2019 14:09:00 +0800 Subject: [PATCH] =?UTF-8?q?video=20=E5=A2=9E=E5=8A=A0=E5=80=8D=E9=80=9F?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/renderers/Video.md | 1 + src/components/Select.tsx | 3 --- src/renderers/Carousel.tsx | 20 +++++++------------- src/renderers/Video.tsx | 8 +++++++- 4 files changed, 15 insertions(+), 17 deletions(-) diff --git a/docs/renderers/Video.md b/docs/renderers/Video.md index 254a9c08..4c324203 100644 --- a/docs/renderers/Video.md +++ b/docs/renderers/Video.md @@ -10,6 +10,7 @@ | poster | `string` | | 视频封面地址 | | muted | `boolean` | | 是否静音 | | autoPlay | `boolean` | | 是否自动播放 | +| rates | `array` | | 倍数,格式为`[1.0, 1.5, 2.0]`| ```schema:height="500" scope="body" { diff --git a/src/components/Select.tsx b/src/components/Select.tsx index 78e21572..a3c89cdf 100644 --- a/src/components/Select.tsx +++ b/src/components/Select.tsx @@ -312,9 +312,6 @@ export class Select extends React.Component { const checkedAll = optionsValues.every(option => selectionValues.indexOf(option) > -1); selection = checkedAll ? [] : options; - this.setState({ - selection: selection - }); onChange(selection); } diff --git a/src/renderers/Carousel.tsx b/src/renderers/Carousel.tsx index eb9ddeb4..4596eb31 100644 --- a/src/renderers/Carousel.tsx +++ b/src/renderers/Carousel.tsx @@ -34,7 +34,7 @@ export interface CarouselState { } export class Carousel extends React.Component { - wrapperRef: React.RefObject; + wrapperRef: React.RefObject = React.createRef(); intervalTimeout: number; durationTimeout: number; @@ -51,18 +51,12 @@ export class Carousel extends React.Component { placeholder: '' }; - constructor(props:CarouselProps) { - super(props); - - this.state = { - current: 0, - options: this.props.value ? this.props.value : this.props.options ? this.props.options : [], - showArrows: false, - nextAnimation: '' - }; - - this.wrapperRef = React.createRef(); - } + state = { + current: 0, + options: this.props.value ? this.props.value : this.props.options ? this.props.options : [], + showArrows: false, + nextAnimation: '' + }; componentDidMount() { this.prepareAutoSlide(); diff --git a/src/renderers/Video.tsx b/src/renderers/Video.tsx index fb27193a..c1572066 100644 --- a/src/renderers/Video.tsx +++ b/src/renderers/Video.tsx @@ -5,7 +5,7 @@ /* eslint fecs-indent: [0, "space", 2, 2] */ import * as React from 'react'; -import {Player, Shortcut, BigPlayButton} from 'video-react'; +import {Player, Shortcut, BigPlayButton, ControlBar, PlaybackRateMenuButton} from 'video-react'; import {padArr} from '../utils/helper'; import * as cx from 'classnames'; import {Renderer, RendererProps} from '../factory'; @@ -396,6 +396,7 @@ export default class Video extends React.Component { playerClassName, classPrefix: ns, aspectRatio, + rates } = this.props; let source = this.props.src || (name && data && (data as any)[name]) || (amisConfig && amisConfig.value); @@ -422,6 +423,11 @@ export default class Video extends React.Component { muted={muted} aspectRatio={aspectRatio} > + {rates && rates.length ? ( + + + + ) : null} {sourceNode}