• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

TypeScript react.cloneElement函数代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了TypeScript中react.cloneElement函数的典型用法代码示例。如果您正苦于以下问题:TypeScript cloneElement函数的具体用法?TypeScript cloneElement怎么用?TypeScript cloneElement使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。



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

示例1: cloneWithRef

export default function cloneWithRef(
	element: any,
	newRef: any,
): React.ReactElement<any> {
	const previousRef = element.ref
	invariant(
		typeof previousRef !== 'string',
		'Cannot connect React DnD to an element with an existing string ref. ' +
			'Please convert it to use a callback ref instead, or wrap it into a <span> or <div>. ' +
			'Read more: https://facebook.github.io/react/docs/more-about-refs.html#the-ref-callback-attribute',
	)

	if (!previousRef) {
		// When there is no ref on the element, use the new ref directly
		return cloneElement(element, {
			ref: newRef,
		})
	}

	return cloneElement(element, {
		ref: (node: any) => {
			newRef(node)
			if (previousRef) {
				previousRef(node)
			}
		},
	})
}
开发者ID:chenermeng,项目名称:react-dnd,代码行数:28,代码来源:cloneWithRef.ts


示例2: prependProps

  leaving.forEach(key => {
    const child = indexedChildren[key];
    const newChild = newlyLeaving[key]
      ? React.cloneElement(child, {
          _pose: exitPose,
          onPoseComplete: (pose: CurrentPose) => {
            if (pose === exitPose) scheduleChildRemoval(key);

            const { onPoseComplete } = child.props;
            if (onPoseComplete) onPoseComplete(pose);
          },
          popFromFlow: flipMove
        })
      : child;

    const insertionIndex = prevKeys.indexOf(key);

    // We might have had new items added before this item in the same
    // render. So here we find the correct item to anchor to. This is
    // a pretty shitty algo. But it is also the one we have
    // if (insertionIndex) {
    // TODO: Write a shitty algo
    // }

    indexedChildren[child.key] = newChild;
    nextState.displayedChildren.splice(
      insertionIndex,
      0,
      hasPropsForChildren ? prependProps(newChild, propsForChildren) : newChild
    );
  });
开发者ID:Popmotion,项目名称:popmotion,代码行数:31,代码来源:children.ts


示例3:

  Children.forEach(targetChildren, (child: ReactElement<any>) => {
    if (!child) return;
    const isEntering = enteringKeys.has(getKey(child));
    const baseProps = {
      flipMove,
      measureSelf: popFromLayoutOnExit
    };

    if (isEntering && (enterAfterExit && leavingKeys.length)) return;

    const cloneProps: { [key: string]: any } = isEntering
      ? {
          initialPose: animateOnMount || hasMounted ? preEnterPose : undefined,
          pose: enterPose,
          onPoseComplete: null,
          ...baseProps,
          ...props
        }
      : {
          ...baseProps,
          ...props
        };

    children.push(cloneElement(child, cloneProps));
  });
开发者ID:Popmotion,项目名称:popmotion,代码行数:25,代码来源:children.ts


示例4: classnames

export const addClassnames = (
    classNames: Array<string | undefined>,
    elem: React.ReactElement<any>
): React.ReactElement<any> => React.cloneElement(
    elem,
    {
        className: classnames(...classNames.concat(elem.props.className))
    }
)
开发者ID:steam-react,项目名称:steam,代码行数:9,代码来源:helpers.ts


示例5: cloneElement

    const reactMapper = (childObj, root) => {
      const reactChildren = Object.keys(childObj).map(key => childObj[key]);

      if (root) {
        return cloneElement(root, root.props, ...reactChildren);
      }

      return reactChildren[0];
    };
开发者ID:NewSpring,项目名称:apollo-client,代码行数:9,代码来源:mapper.ts


示例6:

 connectDragSource: (element: React.ReactElement<any>) => {
   return React.cloneElement(element, {
     draggable: true,
     onDragStart: (event: React.DragEvent<any>) => {
       if (handler.start) {
         handler.start(this.props as TInner)(event);
       }
       (this.props as any).dispatch(dndStarted(handler.getData(this.props), event))
     },
     onDragEnd: (event) => (this.props as any).dispatch(dndEnded(handler.getData(this.props), event)),
   })
 },
开发者ID:cryptobuks,项目名称:tandem,代码行数:12,代码来源:dnd.ts


示例7: setElementAtPath

    return setElementAtPath(decoratedFixture, elPath, element => {
      if (!isRefSupported(element.type)) {
        return element;
      }

      return React.cloneElement(element, {
        ref: getDecoratedRef(
          (element as ElementWithRef).ref,
          spyRef,
          elPath,
          cachedRefHandlers
        )
      });
    });
开发者ID:skidding,项目名称:cosmos,代码行数:14,代码来源:index.ts


示例8: traceReactElementPattern

function traceReactElementPattern(depth: number): ReactElementPattern<ReactElement<any>> {
    return {
        String(el, type, children) {
            console.log(depth, "E/S", type, mapReactNode(typeofReactNodePattern)(children));
            if (children) {
                const newChildren = mapReactNode(traceReactNodePattern(depth + 1))(children);
                return cloneElement(el, el.props, newChildren);
            } else {
                return el;
            }
        },
        Component(el, type) {
            console.log(depth, "E/C", type);
            return createElement(wrapComponentType(type, mapReactElement(traceReactElementPattern(depth + 1))), el.props);
        },
    };
}
开发者ID:wereHamster,项目名称:react-functors,代码行数:17,代码来源:test.ts


示例9: renderComponent

export function renderComponent(component:RenderComponentType<any>, props={}, children=null){
  if (component["prototype"] instanceof React.Component || (component["prototype"] && component["prototype"].isReactComponent)){
    return React.createElement(component as React.ComponentClass<any>, props, children)
  } else if (React.isValidElement(component)){
    return React.cloneElement(component as Element, props, children);
  } else if ((typeof component) === 'function'){
    const funProps = (children != null) ? defaults(props, {children}) : props
    return React.createElement(FunctionComponent, {
      key: props["key"],
      fun: component,
      props: funProps
    })

  }
  console.warn("Invalid component", component)
  return null
}
开发者ID:BenJamesbabala,项目名称:searchkit,代码行数:17,代码来源:RenderComponent.ts


示例10: renderComponent

export function renderComponent(component:RenderComponentType<any>, props={}, children=null){
  let isReactComponent = (
    component["prototype"] instanceof React.Component ||
    (component["prototype"] && component["prototype"].isReactComponent) ||
    typeof component === 'function'
  )
  if (isReactComponent){
    return React.createElement(
      component as React.ComponentClass<any>,
      props, children
    )
  } else if (React.isValidElement(component)){
    return React.cloneElement(
      component as Element,
      omitBy(props, isUndefined), children
    );
  }
  console.warn("Invalid component", component)
  return null
}
开发者ID:Nostres,项目名称:searchkit-redux,代码行数:20,代码来源:RenderComponent.ts



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


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
TypeScript react.createClass函数代码示例发布时间:2022-05-25
下一篇:
TypeScript rcf-message-router.IConnectionsManager类代码示例发布时间:2022-05-25
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap