当前位置: 首页>>代码示例>>TypeScript>>正文


TypeScript Record.getIn方法代码示例

本文整理汇总了TypeScript中Immutable.Record.getIn方法的典型用法代码示例。如果您正苦于以下问题:TypeScript Record.getIn方法的具体用法?TypeScript Record.getIn怎么用?TypeScript Record.getIn使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Immutable.Record的用法示例。


在下文中一共展示了Record.getIn方法的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。

示例1:

 const filterByTrackFunc = (sel: Record<AnnotationSelection>) => {
   return sel.getIn(['track', 'id']) === track.get('id', null)
 }
开发者ID:StudioProcess,项目名称:rvp,代码行数:3,代码来源:project.ts

示例2: reducer

export function reducer(state: State = initialState, action: project.Actions): State {
  switch(action.type) {
    case project.PROJECT_LOAD_SUCCESS: {
      /* Handle new project:
       * For `new project` there is no defined video, therefore
       * the video data from the previous state is used.
       */
      const prevDuration = state.getIn(['meta', 'timeline', 'duration'])
      const prevVideoMeta = state.getIn(['meta', 'video'])
      const prevVideoBlob = state.get('videoBlob', null)

      const {meta: {id, timeline, video:videoMeta}, video} = action.payload

      if(videoMeta === null) {
        timeline.duration = prevDuration
      }

      if(videoMeta && videoMeta.type === VIDEO_TYPE_URL) {
        videoMeta.url = new URL(videoMeta.url)
      }
      // Create immutable representation
      return new ProjectRecordFactory({
        videoBlob: video === null ? prevVideoBlob: video,
        player: state.get('player', new ProjectPlayerStateRecordFactory()),
        meta: ProjectMetaRecordFactory({
          id,
          video: videoMeta === null ? prevVideoMeta : (videoMeta.type === VIDEO_TYPE_BLOB ? BlobVideoRecordFactory(videoMeta) : UrlVideoRecordFactory(videoMeta)),
          timeline: TimelineRecordFactory({
            ...timeline,
            tracks: List(timeline.tracks.map((track: any) => {
              const {title: trackTitle} = track.fields
              return new TrackRecordFactory({
                ...track,
                fields: TrackFieldsRecordFactory({title: trackTitle}),
                annotationStacks: List(track.annotationStacks.map((annotations: any) => {
                  return List(annotations.map((annotation: any) => {
                    const {description} = annotation.fields
                    return new AnnotationRecordFactory({
                      ...annotation,
                      fields: new AnnotationFieldsRecordFactory({description}),
                    })
                  }))
                }))
              })
            }))
          })
        })
      })
    }
    case project.PROJECT_IMPORT_VIDEO_SUCCESS: {
      const payload = action.payload
      switch(payload.type) {
        case VIDEO_TYPE_BLOB: {
          const blobVideo = payload.data as File|Blob
          return state
            .set('videoBlob', blobVideo)
            .setIn(['meta', 'video'], BlobVideoRecordFactory({type: VIDEO_TYPE_BLOB}))
        }
        case VIDEO_TYPE_URL: {
          const videoMeta = {
            type: VIDEO_TYPE_URL,
            source: payload.source as VideoUrlSource,
            url: payload.data as URL
          }
          return state
            .set('videoBlob', null)
            .setIn(['meta', 'video'], UrlVideoRecordFactory(videoMeta))
        }
      }
      return state
    }
    case project.PROJECT_SET_TIMELINE_DURATION: {
      return state.setIn(['meta', 'timeline', 'duration'], action.payload.duration)
    }
    case project.PROJECT_ADD_ANNOTATION: {
      const {trackIndex, annotationStackIndex, annotation, source} = action.payload

      let placedTrackIndex = trackIndex
      let placedAnnotation = annotation
      if(source === 'toolbar') {
        const tracks = state.getIn(['meta', 'timeline', 'tracks']) as List<Record<Track>>
        placedTrackIndex = tracks.findIndex(track => track.get('isActive', false))
        placedAnnotation = annotation.set('utc_timestamp', state.getIn(['player', 'currentTime']))
      }

      const annotationStacks = state.getIn(['meta', 'timeline', 'tracks', placedTrackIndex, 'annotationStacks'])
      const newId = nextAnnotationId(state.getIn(['meta', 'timeline']))
      const newAnnotation = placedAnnotation.set('id', newId)
      const timelineDuration = state.getIn(['meta', 'timeline', 'duration'])

      const stacksWithEmbedded = embedAnnotations(timelineDuration, annotationStacks, annotationStackIndex, List([newAnnotation]), List([]))
      return state.setIn(['meta', 'timeline', 'tracks', placedTrackIndex, 'annotationStacks'], stacksWithEmbedded)
    }
    case project.PROJECT_UPDATE_ANNOTATION: {
      const {trackIndex, annotationIndex, annotationStackIndex, annotation} = action.payload

      const path = ['meta', 'timeline', 'tracks', trackIndex, 'annotationStacks']
      const annotationStacks: List<List<Record<Annotation>>> = state.getIn(path)
      const prevAnnotation: Record<Annotation> = annotationStacks.getIn([annotationStackIndex, annotationIndex])
      const timelineDuration = state.getIn(['meta', 'timeline', 'duration'])
//.........这里部分代码省略.........
开发者ID:StudioProcess,项目名称:rvp,代码行数:101,代码来源:project.ts

示例3: eve

 get eve(): number {
   return this.forecast.getIn(['temp', 'eve']);
 }
开发者ID:atSistemas,项目名称:angular-base,代码行数:3,代码来源:forecast-detail.component.ts

示例4: morn

 get morn(): number {
   return this.forecast.getIn(['temp', 'morn']);
 }
开发者ID:atSistemas,项目名称:angular-base,代码行数:3,代码来源:forecast-detail.component.ts

示例5: max

 get max(): number {
   return this.forecast.getIn(['temp', 'max']);
 }
开发者ID:atSistemas,项目名称:angular-base,代码行数:3,代码来源:forecast-detail.component.ts

示例6: night

 get night(): number {
   return this.forecast.getIn(['temp', 'night']);
 }
开发者ID:atSistemas,项目名称:angular-base,代码行数:3,代码来源:forecast-detail.component.ts

示例7: day

 get day(): number {
   return this.forecast.getIn(['temp', 'day']);
 }
开发者ID:atSistemas,项目名称:angular-base,代码行数:3,代码来源:forecast-detail.component.ts

示例8: dateTime

 get dateTime(): Date {
   return new Date(this.forecast.getIn(['dt']) * 1000);
 }
开发者ID:atSistemas,项目名称:angular-base,代码行数:3,代码来源:forecast-detail.component.ts

示例9: humidity

 get humidity() {
   return this.info.getIn(['humidity']);
 }
开发者ID:atSistemas,项目名称:angular-base,代码行数:3,代码来源:station-info.component.ts

示例10: pressure

 get pressure() {
   return this.info.getIn(['pressure']);
 }
开发者ID:atSistemas,项目名称:angular-base,代码行数:3,代码来源:station-info.component.ts


注:本文中的Immutable.Record.getIn方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。