老师我这里 用第一种方式好使,第二种用ref console.log是undefined?
来源:8-5 组件的Refs(操作DOM的二种方法)
雪挽
2017-05-16
import React from 'react';
import ReactDOM from 'react-dom';
import BodyChild from './bodyChild';
import PropTypes from 'prop-types';
export default class BobyIndex extends React.Component {
constructor() {
super(); // 调用基类的所有初始化方法
this.state = {
username: "Lac",
age: 25
} // 自身的state只是当前作用域
}
changeUserInfo(age) {
this.setState({age: age});
// 操作原生DOM第一种方式
// var mySubmitBtn=document.getElementById("submitButton");
// ReactDOM.findDOMNode(mySubmitBtn).style.color='red';
// 第二种方式
console.log(this.refs.mySubmitBtn);
};
handleChildValueChange(event) {
this.setState({age: event.target.value});
};
render() {
// setTimeout(() => { // 更改state 的时候 this.setState({username:
// "Zhangyangyang",age: 18}) }, 4000);
return (
<div>
<h2>页面主体</h2>
<p>{this.state.username}</p>
<p>{this.state.age}</p>
<p>接收到的父页面的属性:{this.props.userid}</p>
<input id="submitButton" ref="submitBtn"
type="button"
value="提交"
onClick={this
.changeUserInfo
.bind(this, 18)}/>
{/*...:把父页面所有属性拿过来*/}
<BodyChild
{...this.props}
handleChildValueChange={this
.handleChildValueChange
.bind(this)}/>
</div>
)
}
}
// 类型约束
BobyIndex.propTypes = {
userid: PropTypes.number
}写回答
1回答
-
雪挽
提问者
2017-05-16
发现错误了 ref和上面的引用不一致 马虎了
00
相似问题