标签: react-wrapper

使用ase.mount时发生错误:“ TypeError:ReactWrapper只能包装有效元素”

将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)

reactjs jestjs enzyme react-wrapper

4
推荐指数
2
解决办法
1813
查看次数

标签 统计

enzyme ×1

jestjs ×1

react-wrapper ×1

reactjs ×1