Reactjs 在控制值时,如何使用react测试库将文本键入formik?
我目前在为使用值的formik字段编写测试时遇到问题。如果我使用defaultValue而不是value,我已经设法让测试正常工作,但我需要使用value。我试着在onChange中运行console.log,知道文本正在通过它,但我不明白为什么它没有设置。我需要改变什么才能让它工作 我试图测试的代码示例Reactjs 在控制值时,如何使用react测试库将文本键入formik?,reactjs,formik,react-testing-library,Reactjs,Formik,React Testing Library,我目前在为使用值的formik字段编写测试时遇到问题。如果我使用defaultValue而不是value,我已经设法让测试正常工作,但我需要使用value。我试着在onChange中运行console.log,知道文本正在通过它,但我不明白为什么它没有设置。我需要改变什么才能让它工作 我试图测试的代码示例 尝试为调用userEvent.type()添加延迟。例如: await userEvent.type(字段,“配置文件名”{delay:1})您是否尝试过异步?如果字段具有正确的值,则异步可能
尝试为调用userEvent.type()
添加延迟。例如:
await userEvent.type(字段,“配置文件名”{delay:1})
您是否尝试过异步?如果字段具有正确的值,则异步可能是问题所在
test("fills out profile name", async () => {
const field = screen.getByLabelText("Profile Name");
await userEvent.type(field, "profile name");
expect(field).toHaveValue("profile name");
});
const field=screen.getByLabelText(“配置文件名”);字段的值是否正确?它以空字符串的正确值开始。它从未向我显示输入中正确的预期值。请尝试将onChange包装为wait waitFor(async()=>{wait userEvent.type(field,“profile name”);})我尝试过使用async,但没有成功。我刚才仔细检查了你的建议,值仍然是一个空字符串。如果我尝试延迟,这是否意味着我需要等待之后?我尝试了延迟,然后尝试在它wait waitFor(()=>{screen.debug(screen.getByLabelText(“Profile Name”);})之后添加它进行调试代码>它仍然向我显示相同的空输入。这是错的吗?