最近在学些react,但是在使用ref的时候总是报错:
bundle1.js:833 Uncaught Invariant Violation: addComponentAsRefTo(...): Only a ReactOwner can have refs. You might be adding a ref to a component that was not created inside a component's `render` method, or you have multiple copies of React loaded (details: https://fb.me/react-refs-must-have-owner).
使用的react版本是v15.1.0,其他的都没啥问题,就是只要写ref就出错。实在找不出啥问题。。求指点迷津。。
依赖包:
"devDependencies": {
"babel-core": "^6.11.4",
"babel-loader": "^6.2.4",
"babel-preset-es2015": "^6.9.0",
"babel-preset-react": "^6.11.1",
"react": "^15.2.1",
"react-dom": "^15.2.1",
"webpack": "^1.13.1"
}
index.html
<div id="app"></div>
<script src="../dist/react.min.js"></script>
<script src="out/bundle1.js"></script>
App.js
import React from "react";
import ReactDOM from "react-dom";
import Bpage from "./Bpage.js";
class App extends React.Component {
render(){
return (
<Bpage name="todolists form props" />
)
}
}
ReactDOM.render(<App/>, document.getElementById("app"));
Bpage.js
export default class Bpage extends React.Component {
onClickHandler(){
console.log(React.findDOMNode(this.refs.testRef));
}
render(){
return (
<div className="panel">
<div ref="testRef">{this.props.name}</div>
<button onClick = {this.onClickHandler.bind(this)}>点击</button>
</div>
)
}
}