Reactjs:我可以在无状态组件的事件处理程序中访问ref吗?

时间:2016-08-01 04:39:46

标签: reactjs

有没有人知道是否可以从无状态组件onClick处理程序访问引用?

例如:

function MyComponent ({myProp}) {
  var userFeedbackNode
  return <div>
    <textarea ref={(c) => userFeedbackNode = c}/>
    <button onClick={()=> {
       //do something with the userFeedbackNode here.
    }}>Send</button>
  </div>
}

我相信这种方法确实有效,但是这样分配和访问引用有什么问题吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

即可。您不能将ref附加到函数组件本身,但您可以在其中获取ref组件(如果它们本身不是功能组件)。您需要将变量引用保留在functionnal组件本身的范围之外,如下所示:

let _inputRef

const MyComponent = (props) =>
    <input type=text  ref={ref  => typeof _inputRef == 'undefined' ? ref : _inputRef} />

所以是的,它是可行的,但是相当无用,因为函数组件没有生命周期方法,你可能需要使用该参考。