老师我这里 用第一种方式好使,第二种用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和上面的引用不一致 马虎了

0
0

结合基础与实战学习React.js 独立开发新闻头条平台

轻松入门 React 开发,React Router 4 与 Webpack 2 完美升级项目

2768 学习 · 2126 问题

查看课程