adi*_*iti 3 javascript reactjs redux
我将我的React升级到16.3.2并使用React.createRef()如下所示:https://reactjs.org/docs/react-api.html#reactcreateref
但是当我收到以下错误时:
Uncaught Error: Expected ref to be a function or a string.
Run Code Online (Sandbox Code Playgroud)
当我看看React.createRef()实际返回的函数时,我看到了:
{ current: null }
Run Code Online (Sandbox Code Playgroud)
这里出了什么问题?实施是否改变了?
我使用react-router-dom进行路由,而我的组件是一个class组件.
编辑:这是我的代码:
export class MyComponent extends Component {
constructor(props) {
super(props);
this.cardRef = React.createRef();
}
render() {
return (
<div>
...
<Card ref={this.cardRef}>
...
</Card>
</div>
);
}
}
Run Code Online (Sandbox Code Playgroud)
要解决这个问题:
这里出了什么问题?实施是否改变了?
不.它只返回一个Object,其属性current设置为null.这里没有魔力.您只需在具有此类对象的组件中启动属性,然后将此对象的引用传递给组件.然后在某些时候反应重新分配current.
this.component = React.createRef() // this.component = { current: null }
// we pass a reference to object above and react will mutate current property at some point
<div ref={this.component} />
Run Code Online (Sandbox Code Playgroud)
错误消息似乎表明您仍在使用旧版本的react.我建议的是
react和react-dom(16.3.2)| 归档时间: |
|
| 查看次数: |
3183 次 |
| 最近记录: |