2016-11-28 23 views
1

したがって、還元型と酵素を使っている間に自分のコンポーネントにテストを書こうとしています。 はこれまでのところ、私の簡単な部品のために、私は、問題は、私が反応し-Reduxのをだけでなく、それが失敗した使用しようとしているときということで、以下の機能一般的な機能を使って酵素で還元型をテストする

export const mountWithContext = (node, store) => { 
    const nodeToMount = store ? <Provider store={store} >{node}</Provider> : node; 
    return mount(nodeToMount); 
}; 

を作成しました。 がやろうとしている。

class Form extends Component { 
    render() { 
    return <div><TestComponent /></div> 
    } 
} 

const TestForm = reduxForm({ form: 'testForm' })(Form); 
const enzymeWrapper = mountWithContext(TestForm, store) 

と私は次のエラー

'Warning: Failed prop type: Invalid prop `children` of type `function` supplied to `Provider`, expected a single ReactElement. 
Invariant Violation: React.Children.only expected to receive a single React element child. 

にこの問題が発生し、これを解決する方法を、なぜすべてのアイデアを取得していますか?

答えて

1

この質問は6か月前です。同様のエラーメッセージが表示される他の人には:

<Provider>{ node }</Provider>のレンダリングは、実際には<Provider><Node /></Provider>などとする必要があります。エラーは基本的に要素が必要であり、<Node/>の代わりに{ node }として使用される子が関数であると言っています。

export const mountWithContext = (Node, store) => { 
    const nodeToMount = store ? (
    <Provider store={store} > 
     <Node /> 
    </Provider> 
) : <Node />; 
    return mount(nodeToMount); 
}; 

だから{node}から<Node />または<Node></Node>

にJSXに Nodeと使用に nodeの引数名を変更
関連する問題