这是我要实现的目标的演示:链接
问题是,我看到如果没有 defaultChecked 属性,我可以更改值并选中复选框,但它是遗留代码,我不能轻易将其取出,我需要该属性。
我需要: e.currentTarget.checked 在测试环境中实现,它是错误的。当我删除 defaultChecked false 时,它确实实现了,但我需要它。
我将react-testing-library 与 jest 一起使用。
以及来自这里的演示代码:
export class OptionCheckbox extends React.Component {
changeHandler = e => {
console.log("onchange triggered", e.currentTarget.checked);
};
render() {
return (
<div>
<input
onChange={this.changeHandler}
defaultChecked={false}
id="test"
name="test"
type="checkbox"
/>
<label htmlFor="test">
<span />
Test
</label>
</div>
);
}
}
// TEST
test("Example test of change event", () => {
const component = renderIntoDocument(<OptionCheckbox />);
component.getByLabelText("Test").setAttribute("checked", "");
fireEvent.change(component.getByLabelText("Test"));
component.unmount();
});