Javascript 出于测试目的,我是否应该避免引用e.target?

Javascript 出于测试目的,我是否应该避免引用e.target?,javascript,unit-testing,reactjs,Javascript,Unit Testing,Reactjs,我经常编写这样的组件: <input ref="ckbx" type="checkbox" checked={this.props.checked} onChange={() => this.props.onChange(this.refs.ckbx.checked)} /> 所以,我的问题是 这是写入输入逻辑的首选方法吗 这是写入输入逻辑的唯一可测试单元方法吗? 它看起来不那么灵活(如果我需要考虑多个参考文件)呢?< /LI> 我可以让我现

我经常编写这样的组件:

<input
    ref="ckbx"
    type="checkbox"
    checked={this.props.checked}
    onChange={() => this.props.onChange(this.refs.ckbx.checked)}
/>
所以,我的问题是

  • 这是写入输入逻辑的首选方法吗
  • 这是写入输入逻辑的唯一可测试单元方法吗? 它看起来不那么灵活(如果我需要考虑多个参考文件)呢?< /LI>
  • 我可以让我现有的方法工作吗
  • 我应该更改所有组件吗? (不难,但如果有更好的方法,我不想这么做。)
正如您在中看到的,他们只使用
e.target
,我也总是将输入与
e.target
一起使用。 我强烈建议您尽可能避免在React中使用
refs
。首先,因为React团队称之为“逃生舱”。此外—


使用
e.target
可以模拟事件,它应该可以完美地工作。

对不起,我对此不满意,特别是因为“执行DOM测量几乎总是需要接触“本机”组件,如
,并使用ref访问其底层DOM节点。ref是可靠地执行此操作的唯一实用方法之一。”
<input
    type="checkbox"
    checked={this.props.checked}
    onChange={e => this.props.onChange(e.target.checked)}
/>