栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

React DnD:避免使用findDOMNode

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

React DnD:避免使用findDOMNode

假设您使用的是es6类语法和最新版本的React(在撰写本文时为15),则可以像Dan在其示例中所做的那样,在共享链接上附加一个回调引用。从文档:

在HTML元素上使用ref属性时,ref回调将接收基础DOM元素作为其参数。例如,此代码使用ref回调存储对DOM节点的引用:

<h3    className="widget"    onMouseOver={ this.handleHover.bind( this ) }    ref={node => this.node = node}>

然后,您可以访问节点,就像我们以前与老朋友

findDOMNode()
或那样
getDOMNode()

handleHover() {  const rect = this.node.getBoundingClientRect(); // Your DOM node  this.setState({ rect });}

实际使用中:https:
//jsfiddle.net/ftub8ro6/

编辑:

因为React
DND在幕后做了一些魔术,所以我们必须使用它们的API来获得装饰组件。它们提供了功能,

getDecoratedComponentInstance()
因此您可以使用基础组件。一旦使用它,您将获得
component.node
预期的效果:

hover(props, monitor, component) {    const dragIndex = monitor.getItem().index;    const hoverIndex = props.index;    const rawComponent = component.getDecoratedComponentInstance();    console.log( rawComponent.node.getBoundingClientRect() );    ...

它在起作用:

https://jsfiddle.net/h4w4btz9/2/



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/375450.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号