首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在另一个组件中使用组件的React.useRef()?

如何在另一个组件中使用组件的React.useRef()?
EN

Stack Overflow用户
提问于 2020-06-04 09:38:12
回答 2查看 6.9K关注 0票数 0

我有两个组成部分的应用程序和标题。在Header中,我在App中有两个Calendar组件的按钮调用实例方法。如何在没有父组件的情况下将calendarRef传递到Calendar,因为我不能将HeaderApp组合起来。我试过了但我觉得没有必要吗?

代码语言:javascript
复制
import * as React from "react";
import { useRef } from "react";
import "./styles.css";
import Calendar from "@toast-ui/react-calendar";
import "tui-calendar/dist/tui-calendar.css";
import HeaderComponent from "./Header";

const App = () => {
  return (
    <div className="App">
      <HeaderComponent />
      <Calendar ref={calendarRef} height="100vh" />
    </div>
  );
};

这是我的密码。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-06-04 09:41:45

您尚未声明ref并将其传递给HeaderComponent,请参阅钩子

代码语言:javascript
复制
const App = () => {
  const calendarRef = useRef();

  React.useEffect(() => {
    console.log(calendarRef.current);
  }, []);

  return (
    <div className="App">
      <HeaderComponent calendarRef={calendarRef} />
      <Calendar ref={calendarRef} height="100vh" />
    </div>
  );
};

// HeaderComponent
function HeaderComponent({ calendarRef }) {
  const handleNext = () => {
    const calendarInstance = calendarRef.current.getInstance();
    calendarInstance.next();
  };
  return ...
}

票数 3
EN

Stack Overflow用户

发布于 2020-06-04 09:43:31

您应该在App组件中定义一个ref并将其传递给HeaderComponent

代码语言:javascript
复制
const App = () => {
  let calendarRef = useRef();
  return (
    <div className="App">
      <HeaderComponent calendarRef={calendarRef} />
      <Calendar ref={calendarRef} height="100vh" />
    </div>
  );
};

export default App;
代码语言:javascript
复制
function HeaderComponent({ calendarRef }) {
  let handleNext = () => {
    let calendarInstance = calendarRef.current.getInstance();

    calendarInstance.next();
  };

  return (
    <div>
      <button>Prev</button>
      <button onClick={handleNext}>Next</button>
    </div>
  );
}

export default HeaderComponent;

码箱

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62191456

复制
相关文章

相似问题

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