react高阶组件中,更新state时,用ref获取的实例为null
在MyContainer
高阶组件中,使用ref获取MyComponent
的实例,但是在更新state时。proc
函数中instance
会输出两次,第一次为null值。不知道是为什么?求解答。
import React from 'react';
import ReactDOM from 'react-dom';
const MyContainer = (WrappedCompoent) => {
return class extends React.Component {
constructor (props) {
super(props)
this.state = {
name: ""
}
this.onNameChange = this.onNameChange.bind(this)
}
onNameChange (event) {
this.setState({
name: event.target.value
})
}
proc (instance) {
console.log(instance); //state更新时,会log两次,第一次为null
instance && instance.test()
}
render () {
const newProps = Object.assign({
text: "newText",
name: {
value: this.state.name,
onChange: this.onNameChange
}
}, this.props, {ref: this.proc.bind(this)})
return (
<div>
<WrappedCompoent {...newProps}/>
</div>
)
}
}
}
@MyContainer
class MyComponent extends React.Component {
test () {
console.log(123);
}
render () {
return <div>{this.props.text}<input name="name" {...this.props.name}/></div>
}
}
ReactDOM.render(
<div><MyComponent/></div>,
document.getElementById('root')
)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论