将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} …Run Code Online (Sandbox Code Playgroud)