我有一个定义了ref
的元素,并最终呈现到页面中:
<div ref="russian" ...>
...
</div>
我想访问像offset...
之类的DOM元素属性。然而,我一直在使用undefined
,我一点也不知道为什么。经过一些搜索,很明显refs
只适用于一个文件,但除了这一个页面之外,我不会在任何地方使用它。我这样说是为了记录下来:
console.log('REFS', this.refs.russian);
这可能是什么原因造成的?
发布于 2016-02-06 01:45:29
在挂载子组件之前,请检查您是否正在访问ref。例如,它在componentWillMount
中不起作用。在挂载元素后自动调用ref相关回调的另一种模式是-
<div ref={(elem)=>(console.log(elem))}/>
您也可以使用此表示法在深度嵌套中获取挂载的元素-
<div ref={this.props.onMounted}/>
发布于 2018-09-02 19:10:29
自React版本16.4以来的更新
在构造函数方法中,像这样定义ref
constructor(props) {
super(props);
this.russian = React.createRef();
}
在使用ref
的渲染器中,执行此操作。
<input
name="russian"
ref={this.russian} // Proper way to assign ref in react ver 16.4
/>
例如,如果您想在组件挂载时获得焦点
componentDidMount() {
console.log(this.russian);
this.russian.current.focus();
}
发布于 2020-01-10 17:45:05
你应该把你的Console.log放在函数example(){...}
里面,而不是把它放在里面:
example=()=>{....}
https://stackoverflow.com/questions/35230020
复制相似问题