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)}
/>