网上有说ReactDOM.findDOMNode() 还有 this.refs.xxxxx
render:function(){
var addTextDOM = this.refs.inputext.innerTexet
// var addText = addTextDOM.value
console.log(addTextDOM)
return(
<form>
<input type="text" ref="inputext" value=""/>
<button onClick={this.addData}>save</button>
</form>
)
}
})
为什么我这里获取不到呢
var WrapBox = React.createClass({
getInitialState:function(){
return{
data:[]
}
},
changeWhenAdd:function(addIn){
this.setState({
data:addIn
})
},
render:function(){
return(
<div>
<InputandButtom data={this.state.data} callback={this.changeWhenAdd}/>
<ListDisplay data={this.state.data} />
</div>
)
}
})
var InputandButtom = React.createClass({
addData:function(){
var addText = this.refs.inputext.value
console.log(addText)
var addIndate = this.props.data
addIndate.push({
text:addText,
key:Date.now()
})
this.props.callback(addIndate);
},
render:function(){
return(
<form>
<input type="text" ref="inputext" />
<button onClick={this.addData.bind(this)}>save</button>
</form>
)
}
})
var ListDisplay = React.createClass({
render:function(){
var addData = this.props.data
function createList(data){
return <li key={data.key}>{data.text}</li>
}
var dataListdone = addData.map(createList)
return (
<ul>
{dataListdone}
</ul>
)
}
})
ReactDOM.render(
<WrapBox />,
document.getElementById('example')
)
触发点击按钮后页面会重绘,但是不触发addData:function中的console.log啊 ,控制台也不报错,不知道哪里错了啊
你在render的时候应该是取不到的把 试着在componentDidUpdate 或者componentDidMount里面取