Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript userEvent.type仅在包装为act时输入最后一个字符_Javascript_Reactjs_Jestjs_React Testing Library - Fatal编程技术网

Javascript userEvent.type仅在包装为act时输入最后一个字符

Javascript userEvent.type仅在包装为act时输入最后一个字符,javascript,reactjs,jestjs,react-testing-library,Javascript,Reactjs,Jestjs,React Testing Library,我在用户事件github中发现了一个问题,它说它在版本12.0.1中得到了解决,但我使用的是版本12.1.5,我不断收到错误 import React,{Fragment}来自“React”; 从“@testing library/react”导入{render,act}”; 从“@测试库/用户事件”导入userEvent; 从“/App”导入应用程序; test(“获取代码并在新路由中呈现它”,()=>{ 常量{getByLabelText}=render(); 行动(()=>{ 类型(get

我在用户事件github中发现了一个问题,它说它在版本12.0.1中得到了解决,但我使用的是版本12.1.5,我不断收到错误

import React,{Fragment}来自“React”;
从“@testing library/react”导入{render,act}”;
从“@测试库/用户事件”导入userEvent;
从“/App”导入应用程序;
test(“获取代码并在新路由中呈现它”,()=>{
常量{getByLabelText}=render();
行动(()=>{
类型(getByLabelText(“代码:”),“12345”);
});
expect(getByLabelText(“代码”).toHaveValue(“12345”);
});

您的问题可能在更改处理程序的实现中。我最近遇到了一个类似的问题,以下是我认为有效的方法,与真正有效的方法相比


如果你使用的是userEvent,我想你可以放弃这个动作。你能给我们看一下你的应用程序组件代码吗?我确实删除了userEvent,现在我的测试通过了,但我一直收到关于在act中包装用户事件的警告。我该怎么做才能阻止那个警告?关于发布我的应用程序代码堆栈溢出不允许我发布代码,因为它说我应该添加更多细节,减少代码。我现在正面临着完全相同的问题,你们是否都找到了@medicengonzo的解决方案?这个问题似乎也在这里讨论@Hylle刚刚发布了一个答案,如果你仍然有issueThanks@max,这可能会有所帮助。我会在某个时候尝试一下,尽管我最终用一个hacky
userEvent.type(“示例”,{delay:1})
  ● Gets a code and renders it in a new route

    expect(element).toHaveValue(12345)

    Expected the element to have value:
      12345
    Received:
      5
function handleChange(ev: FormEvent, key = "") {
  ev.preventDefault();

  // ✅ Passes
  const value = (ev.target as HTMLInputElement).value;

  setState(s => {
    // ❌ Fails (individual characters instead of progressively built up strings)
    // const value = (ev.target as HTMLInputElement).value;

    return { ...s, [key]: value };
  });
}