javascript - ts2339怎么解决?使用带有测试库/反应的打字稿
问题描述
我收到一条错误消息“属性 'toggled' 在类型 'HTMLElement'.ts(2339) 上不存在”
奇怪的是,我的测试用例都成功了。但是,在测试文件中,出现了关于 ts.2339 的错误消息。
我该怎么做才能解决这个问题?
component...
<Container data-testid={"list-element-toggle"} toggled={state[data.id - 1]}>. * style.div``
<Content data-testid={"list-element-content"} toggled={state[data.id - 1]}>. * style.div``
...
testing file...
expect(getAllByTestId("list-element-toggle")[0].toggled).toEqual(true);
expect(getAllByTestId("list-element-content")[0].toggled).toEqual(true);
- 我认为它已经发生了为什么切换具有其他 HTML DOM 元素。所以,我遇到了这个麻烦。
解决方案
testing-library/react 没有检查组件的 props。可能你内部应该有一个Container
基于Content
proptoggled
的逻辑。
例如里面Content
:
export function Content({ toggled }) {
return (
<div>
{toggled ? : <p>I am toggled</p> : null}
</div>
);
}
然后在测试中:
import { render, screen } from '@testing-library/react';
render(<App />);
expect(screen.getByText("I am toggled")).toBeInTheDocument();
推荐阅读
- azure - 使用 Azure AD B2C 用户流的“自定义页面内容”时,是否应该选择“页面布局版本”?
- html - 我试图让文本出现在图像的右侧,并且让实际的图像框比目前的更苗条
- android - 试图让一组文本视图保存在共享首选项中
- c - scanf() 在 for 循环中只运行一次
- android - Flutter 中的参数无效
- mysql - 在mysql中为group by语句选择不同的参数?
- reactjs - 如何防止组件过早消失?
- kotlin - 类型不匹配 Kotlin 和 getStringArrayListExtra
- javascript - Webpack - 多个入口点,需要它们之间的捆绑包
- ios - Swift 5:在显示的时间更改时区