Nou*_*uny 4 reactjs jestjs enzyme react-wrapper
将React元素传递到“ mount”函数时出现此错误:
it("Book - move book to a shelf should work", () => {
let test = (<Book book={book} />);
let component = mount(test);
const select = component.find("select").first();
expect(select).toBeDefined();
Run Code Online (Sandbox Code Playgroud)
但是,如果我删除变量并将元素直接传递给方法,它将起作用。
it("Book - move book to a shelf should work", () => {
let component = mount(<Book book={book} />);
const select = component.find("select").first();
expect(select).toBeDefined();
Run Code Online (Sandbox Code Playgroud)
它们有何不同?
更新:由于某种原因,此方法(来自Jest的renderer.create)没有抱怨:
let component = renderer.create(<Book onMoveBook={onMoveBook} book={book} />);
const tree = component.toJSON(); // Works fine.
Run Code Online (Sandbox Code Playgroud)
同样,令人惊讶的是,将变量转换为函数并将其传递给React.createElement也起作用了:
var test = React.createElement(() => <Book onMoveBook={onMoveBook} book={book} />);
let component = mount(test);
Run Code Online (Sandbox Code Playgroud)
小智 7
发生了同样的错误。该错误是由您如何安装“测试”组件引起的。执行此操作的方式不是安装有效的组件,而只是安装变量。您想将变量放在之间,< />以使其成为组件。
你在做let component = mount(test);应该做的事let component = mount(<test/>);
小智 1
这可能与 var 的实际情况有关let test
“名称小写的组件是 DOM 元素;自定义元素必须以大写字母开头” https://github.com/airbnb/enzyme/issues/966
我一直在喝消防水带(对酶来说有点新),记得昨天看到过这篇文章,但我并不是 100% 积极。
| 归档时间: |
|
| 查看次数: |
1813 次 |
| 最近记录: |