'react-test-renderer'
でコンポーネントをレンダリングしようとするとInvariant Violation: getNodeFromInstance: Invalid argument.
と表示されます。 'react-addons-test-utils'.CreateRenderer().render()
で正確に同じコンポーネントをレンダリングするとき、またはちょうど私のアプリを起動するとき、私は問題ありません。私は似たような問題について多くのことを読んできましたが、通常の答えは "あなたはReact loadedの複数のコピーを持っています"またはそれに類するものですが、すべてを試しました。不変違反:getNodeFromInstance:無効な引数
const result = renderer.create(
(
<ContextWrapper>
<Router history={browserHistory}>
<Navigation />
</Router>
</ContextWrapper>
),
document.createElement('div'),
);
私ContextWrapper
はちょうどmuiTheme(http://www.material-ui.com/を参照)とその子をラップします。
class ContextWrapper extends Component {
getChildContext() {
return { muiTheme: getMuiTheme() };
}
render() {
return <div>{this.props.children}</div>;
}
}
マイNavigation
が(これらすべてのコンポーネントは、材料-UIからです)AppBar
を含み、AppBar
と3倍のカスタムコンポーネント含むDrawer
:ここ
<Link to={this.props.to}>
<MenuItem onTouchTap={() => this.handleTouchTap()} >
{this.props.label}
</MenuItem>
</Link>
は私の依存関係です:
"devDependencies": {
"babel": "^6.23.0",
"babel-jest": "^19.0.0",
"babel-preset-es2015": "^6.22.0",
"babel-preset-react": "^6.23.0",
"pre-commit": "^1.2.2",
"deep-freeze": "^0.0.1",
"eslint": "^3.15.0",
"eslint-config-airbnb": "^14.1.0",
"eslint-plugin-import": "^2.2.0",
"eslint-plugin-jsx-a11y": "^4.0.0",
"eslint-plugin-react": "^6.9.0"
},
"dependencies": {
"express": "^4.15.2",
"material-ui": "latest",
"morgan": "^1.8.1",
"prop-types": "latest",
"react": "latest",
"react-bootstrap": "^0.30.8",
"react-dom": "latest",
"react-router-dom": "latest",
"react-scripts": "^0.9.5",
"react-tap-event-plugin": "^2.0.1",
"react-test-renderer": "latest"
}
https://github.com/facebook/react/issues/8324 – elmeister
ありがとう、私はすでにこの問題を見てきましたが、どこでもアプリケーションでfindDOMNodeを使用しません。 –