- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我不完全理解,但显然it isn't recommended to use findDOMNode() .
我正在尝试创建拖放组件,但我不确定应该如何访问组件变量中的引用。这是我目前拥有的示例:
const cardTarget = {
hover(props, monitor, component) {
...
// Determine rectangle on screen
const hoverBoundingRect = findDOMNode(component).getBoundingClientRect();
...
}
}
编辑
这可能是因为我的组件既是拖放源又是目标,因为我可以让它在 this example 中工作。但不是this one .
最佳答案
假设您使用的是 es6 类语法和最新版本的 React(撰写本文时为 15),您可以在您共享的链接上附加一个回调引用,就像 Dan 在他的示例中所做的那样。来自 the docs :
When the ref attribute is used on an HTML element, the ref callback receives the underlying DOM element as its argument. For example, this code uses the ref callback to store a reference to a DOM node:
<h3
className="widget"
onMouseOver={ this.handleHover.bind( this ) }
ref={node => this.node = node}
>
然后你就可以像我们以前和老 friend 一样访问该节点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() );
...
这是在行动:
关于javascript - react DnD : Avoid using findDOMNode,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40499267/
我正在尝试使用函数作为组件内的 prop,并且该组件是另一个组件的子组件。但该功能不起作用。?我可以知道为什么吗?这是我在控制台中收到的警告。 Warning: findDOMNode is depr
Draggable 包在严格模式下导致错误: Warning: findDOMNode is deprecated in StrictMode. findDOMNode waspassed an in
我试图用 material-ui 和 React 制作一个选择菜单 const SelectLevelButton = forwardRef((props, ref) => { const [st
我被指派修复一些失败的 Jest 测试。这是一个例子: 这是 checkboxGroup.spec.js: import React from 'react'; import ReactDOM fro
我有 /* @jsx React.DOM*/ var Login = React.createClass({ Validate: function(){ debugger;
我有一个使用 findDOMNode() 的旧代码。 这是我的代码,其中 someComponent1 和 Expand 已导入。 在这里,我有些怀疑我用 findDOMNode() 编写的代码是否工
我创建了一个 HOC 来监听其包装组件外部的点击,以便包装组件可以根据需要进行监听和 react 。 HOC 看起来像这样: const addOutsideClickListener = (Wrap
我正在使用 antd 并且看到此错误 findDOMNode is deprecated in StrictMode. findDOMNode was passed an instance of DO
我知道有React.findDOMNode(component).value/focus() 。我正在寻找所有可以与React.findDOMNode一起使用的方法. 例如,我有一个 标签,我尝试过
出于某种原因,我无法使用 React.findDOMNode 函数。浏览器提示类型错误,说 React.findDOMNode 不是函数。这是发生这种情况的代码: var React = requir
我正在使用 ReactJS 和 Flux 构建一个网络应用程序,我正在尝试使用 findDOMNode 方法获取当前 div 的节点,但出现下一个错误: Uncaught TypeError: Rea
我正在使用 react-bootstrap 中的工具提示覆盖,但在 StrictMode 中不推荐使用错误 findDOMNode。根据 documentation使用overlaytrigger的函
我目前正在 Jest 测试 React 组件,组件的内联样式会根据不同的 props 值而改变。 这是一个关于我想做的事情的例子: let firstChild = TestUtils.findRen
“ react ”:“^16.13.1” “ react 过渡组”:“^4.3.0” 大家好。 我遇到了 findDOMNode 警告,在互联网上找不
我不完全理解,但显然it isn't recommended to use findDOMNode() . 我正在尝试创建拖放组件,但我不确定应该如何访问组件变量中的引用。这是我目前拥有的示例: co
谁能告诉我两者有什么区别 React.findDOMNode(this.refs.email).value 和 this.refs.email.getDOMNode().value 他们在做同样的事情
我正在尝试研究如何使用 typescript 和 react js。我关注这个link我成功地安装了文件。这是 package.json { "name": "proj", "version"
我需要通过深层嵌套组件进行事件冒泡,我尝试做如下的事情 import {ReactDOM,render, unmountComponentAtNode} from 'react-dom';
我正在关注 React Tutorial并卡在如何使用 React.findDOMNode 上. 这是我的代码: export class CommentForm extends React.Comp
大家好,我只是想在路由器转换期间使用 Refs 来定位组件中的元素。目前,来自 React Transition Group 的 onEnter、onExit 和 addEndListener 事件已
我是一名优秀的程序员,十分优秀!