當我試圖渲染我的組件'react-test-renderer'
時,我得到Invariant Violation: getNodeFromInstance: Invalid argument.
。當與'react-addons-test-utils'.CreateRenderer().render()
呈現完全相同的組件時,或剛啓動我的應用程序時,我沒有問題。我已經閱讀了很多類似的問題,通常的答案是「你有多個React加載副本」或類似的東西,但我嘗試了所有的東西,但是我無法使它正常工作。不變違規: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
和3X定義組件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。 –