You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在react-testing-library的userEvent中使用数值类型?

userEvent.type 不能直接传入数值类型的原因及解决办法
  • userEvent.type 的第二个参数必须是字符串类型,这是它的类型约束决定的,直接传数值1000自然会触发类型错误。
  • 原因:userEvent 是模拟真实用户的输入行为,用户在输入框中输入的是字符序列而非数值,所以它要求输入内容必须是字符串。相比 fireEvent,userEvent 对交互的模拟更贴近真实场景,因此类型校验更严格。

解决办法很简单,把数值转换成字符串即可:

await userEvent.type(
  screen.getByRole('textbox', { name: 'pay' }),
  '1000' // 改为字符串格式
);

如果是动态生成的数值,可以用 String() 方法转换:

const payAmount = 1000;
await userEvent.type(
  screen.getByRole('textbox', { name: 'pay' }),
  String(payAmount)
);

内容的提问来源于stack exchange,提问作者ezdar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 02:31:08