When you are using React components you need to be able to access specific references to individual components. This is done by defining a ref . ! DOCTYPE html html head lang ="en" meta charset ="UTF-8" title React Lesson 5: Using Refs to
When you are using React components you need to be able to access specific references to individual components. This is done by defining a ref .
DOCTYPE html >
html >
head lang ="en" >
meta charset ="UTF-8" >
title > React Lesson 5: Using Refs to Access Components title >
head >
body >
script src ="https://cdnjs.cloudflare测试数据/ajax/libs/react/0.12.2/react.js" > script >
script src ="https://cdnjs.cloudflare测试数据/ajax/libs/react/0.12.2/JSXTransformer.js" > script >
script type ="text/jsx" >
var React_app = React.createClass({
getInitialState: function () {
return {
red: 128 ,
green: 128 ,
blue: 128
}
},
myUpdate: function (){
this .setState({
red: this .refs.red.getDOMNode().value,
green: this .refs.green.getDOMNode().value,
blue: this .refs.blue.getDOMNode().value
});
},
render: function () {
return (
div >
Silder update = { this .myUpdate} ref = " red " > / Silder> {this.state.red} / label > br / >
Silder update = { this .myUpdate} ref = " green " > / Silder> {this.state.green} / label > br / >
Silder update = { this .myUpdate} ref = " blue " > / Silder> {this.state.blue} / label > br / >
/ div>
);
}
});
var Silder = React.createClass({
render: function (){
return (
input type = " range " min = " 0 " max = " 255 " onChange = { this .props.update} / >
)
}
});
React.render( React_app / >, document.body);
script >
body >
html >
Here we use getDOMNode() to get the html node:
Silder update ={this.myUpdate} ref ="red" > Silder >
then get value from it:
this.refs.red.getDOMNode().value
But, if we add a div:
var Silder = React.createClass({
render: function(){
return (
div > added -->
input type ="range" min ="0" max ="255" onChange ={this.props.update} />
div > added -->
)
}
});
We found it doesn't work.
The way can solve this problem is by adding another ref to the input element:
var Silder = React.createClass({
render: function(){
return (
div >
input type ="range" min ="0" max ="255" ref ="range" onChange ={this.props.update} />
div >
)
}
});
myUpdate: function (){
this .setState({
red: this .refs.red.refs.range.getDOMNode().value,
green: this .refs.green.refs.range.getDOMNode().value,
blue: this .refs.blue.refs.range.getDOMNode().value
});
},
查看更多关于ReactFundamentals:UsingRefstoAccessComponents的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://www.haodehen.cn/did97265