通过ref或prop改变React中的子组件?

时间:2018-02-22 17:19:41

标签: javascript reactjs

说我有一个儿童组件。假设我想根据父母的信息改变其高度。

如果我得到它的参考。我可以用

更改它
myChild.changeHeight(newHeight);

(见React.js - access to component methods

或者我可以用

更改它
<Child height={newHeight}/>

两者都可以在render()方法中更改。但是我应该使用哪一个?

1 个答案:

答案 0 :(得分:0)

React team提供了几个我们应该使用refs的场景。

  

refs有一些很好的用例:

     
      
  • 管理焦点,文字选择或媒体播放。
  •   
  • 触发势在必行的动画。
  •   
  • 与第三方DOM库集成。
  •   
     

避免将refs用于以声明方式完成的任何事情。

如果有可能在不使用refs的情况下执行某些功能,那么请继续操作。在你的情况下,正如你所说,你可以通过传递道具来做到这一点。如果我们使用道具本身而不是参考,那会更好。