首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何获取对JSX中使用的组件的引用以调用其上的方法?

如何获取对JSX中使用的组件的引用以调用其上的方法?
EN

Stack Overflow用户
提问于 2020-04-11 22:02:36
回答 2查看 250关注 0票数 1

示例代码是ionic-react的,但我的实际问题与ionic无关,它是一个与React/JSX相关的问题。

简化的渲染方法:

代码语言:javascript
复制
return (
  <IonPage>
    <IonContent>
      <div>Hello!</div>
    </IonContent>
  </IonPage>
)

我需要获取对IonContent组件的引用。我不需要对HTMLElement (我可以使用React.createRef())的引用。有可能吗?我怎样才能得到它呢?

背景信息: IonContent定义了一个getScrollElement()方法(参见:https://ionicframework.com/docs/api/content#methods)。我需要访问它来以编程方式滚动内容。在离子内容HTMLElement上设置scrollTop对我来说不起作用,而且据我所知,它不应该这样做。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-04-11 22:11:28

它是实际的引用,但它返回一个promise,所以您可能想要解析它:getScrollElement() => Promise<HTMLElement>

代码语言:javascript
复制
<IonContent ref={myRef}>
  <div>Hello!</div>
</IonContent>;

// getScrollElement returns a promise in async func
const scrollElement = await myRef.current.getScrollElement();
票数 0
EN

Stack Overflow用户

发布于 2021-01-17 20:46:30

对于任何正在寻找TypeScript答案的人。

代码语言:javascript
复制
const contentEle = useRef<HTMLIonContentElement>(null);
const scrollEle = await contentEle.current?.getScrollElement();
scrollEle?.scrollTo({ top: 0 });
    
return (
   <IonContent ref={contentEle}>
       ...
   </IonContent>
)
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61158009

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档