当前位置: 首页 > 面试题库 >

现在不推荐使用ReactDOM.findDOMNode()的替代方法是什么?

单于淇
2023-03-14
问题内容

我有一个正在使用的旧代码findDOMNode()

这里是我的代码,其中someComponent1Expand已经导入。

在这里,我有些疑问,我编写的代码findDOMNode()可以正常工作,但是由于现在不推荐使用,所以我想删除它。我浏览了许多文档,发现使用门户或引用代替了此。我的理解是,如果我使用ref,那么变量get
bind到该变量也可以访问DOM元素,但是我想我错了,因为它以这种方式工作。有人可以纠正我对此的理解

class classA extends Component {

  componentDidMount() {
    new Expand(ReactDOM.findDOMNode(this.expand))
    // new Expand(this.expand)    
  }

  render(){

    return(
      <someComponent1 className={style.container} ref={e => this.expand= e}/>
    )
  }
}

问题答案:

根据 github问题
ReactDocs
ReactDOM.findDOMNode不建议弃用,但不鼓励使用它,仅应将其用作逃生舱口。为了替换它,您需要在DOM元素上指定ref,在您的情况下看起来像

class classA extends Component {

  componentDidMount() {
     new Expand(this.expand)    
  }

  render(){

    return(
      <SomeComponent1 className={style.container} innerRef={e => this.expand= e}/>
    )
  }
}

class SomeComponent1 extends React.Component {
    render() {
       return <div ref={this.props.innerRef}>Hello</div>
    }
}


 类似资料:
  • 问题内容: 现在我正在使用类似 我需要您的意见以最好/最有效的方式对密码进行加密,当然,加密的密码应受PHP 7.xx支持,并且也应可解密,因为我的客户确实希望选择“恢复”密码而不生成新密码一。 问题答案: 最佳做法是对密码进行哈希处理,以使密码不可解密。这使可能已获得对数据库或文件的访问权限的攻击者的处境变得更加困难。 如果必须加密数据并使其可解密,请访问https://paragonie.co

  • 我最近发现是不推荐的。我们该怎么处理? 有什么替代方案吗?

  • 我现在使用下面的代码来断言 ,这会给你糟糕的失败消息,比如“java.lang.断言错误” 收到评论/答案后编辑 我最初的担心是因为Eclipse将以下导入语句显示为已弃用 在查看Hamcrest API文档时,有3个重载的方法变体,其中只有一个被弃用。 因此,为了澄清来自@mark的评论和来自@matt的回答,我在上面发布的的使用是有效的,而不是不建议使用的。

  • 问题内容: 我正在使用org.apache.poi 3.15读取一个excel文件(文件扩展名为xlsx)。 这是我的代码: 我收到不推荐使用的警告。谁能告诉我替代方法? 问题答案: 接受的答案显示了弃用的原因,但未列出替代项: 其中是描述单元格类型的枚举。 计划是在POI 4.0中重命名回。

  • 背景:在声纳Qube中,存在一个自定义的质量门,称为say。这不是默认的质量门。在Jenkins中,我使用参数为一组API配置了这个SonarQube质量门,并且运行良好。 我更喜欢这样一个解决方案,我可以配置一些詹金斯,因为我可以访问詹金斯,但不是声纳Qube配置。

  • [1]http://springfox.github.io/springfox/javadoc/2.7.0/springfox/documentation/swagger/web/classorapiannotationresourcegrouping.html [2]https://github.com/springfox/springfox/issues/1307