javascript - 模拟 - 意味着在 1 个节点上运行。找到了 0 个
问题描述
无法弄清楚为什么 onChange 没有被调用。我添加了一个 id,但它找不到元素。
文件.test.js
it("should call onChange event on renderToDropdown ", () => {
baseProps.onChange.mockClear();
wrapper.setState({
toStatusList:[{
StatusID:"",
Name:"",
}],
selectedTo:'password test 1'
});
wrapper.update()
wrapper.find('select[id="testonchange"]').simulate('change',{target: {value: 'password test 1'}} )
});
还尝试了以下方法:
wrapper.find('#testonchange').simulate('change',{target: {value: 'password test 1'}} )
文件.js
renderToDropdown = () => {
let list = this.state.toStatusList;
let result = list.map((item) => {
return <option value={item.StatusID}>{item.Name}</option>
})
result.push(<option value='default' disabled>Select...</option>)
return (
<select value={this.state.selectedTo} id='testonchange' onChange={(e) => {this.handleToChange(e);}}>
{result}
</select>
)
}
handleToChange = (e) => {
this.setState({selectedTo: e.target.value});
在 React JS 中使用 Jest 和 Enzyme
解决方案
尝试:
wrapper.find('select').prop('onChange')({value: 'password test 1'});
推荐阅读
- django - 如何授予用户临时权限?
- swift - UICollectionView 不适合某些 Apple 设备上的视图控制器
- phonegap - 有人在任何地方使用 Alpha 并成功开发了可以离线和在线工作的移动应用程序吗?
- ios - Coredata轻量级迁移丢失数据
- google-cloud-platform - 如何在 google_compute_target_https_proxy 上使用多个 SSL 证书?
- r - 对两个表中特定列中给出的相应列值求和
- python - 调用并运行另一个 python 脚本并从中运行所有代码
- java - 如何在 WhatsApp 上将图像和文本一起分享给特定的收件人?
- dc.js - 打印或导出 dc.js 图表
- laravel - Laravel 5.5 自定义身份验证问题