首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >React Hooks引用

React Hooks引用
EN

Stack Overflow用户
提问于 2018-12-08 08:10:32
回答 4查看 26.9K关注 0票数 20

所以我决定将我的React Class组件重写为React Hook组件,并且在我的Class组件中我这样做了

代码语言:javascript
复制
<canvas ref='canvas'></canvas>

这种方法不再起作用了。那么我应该如何使用refs呢?在文档中只说ref仍然在工作。

谢谢!

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2019-01-16 01:36:15

对于钩子,您可以使用useRef钩子。

代码语言:javascript
复制
function TextInputWithFocusButton() {
  const inputEl = useRef(null);
  const onButtonClick = () => {
    // `current` points to the mounted text input element
    inputEl.current.focus();
  };
  return (
    <>
      <input ref={inputEl} type="text" />
      <button onClick={onButtonClick}>Focus the input</button>
    </>
  );
}

看看这里的useRef文档:https://reactjs.org/docs/hooks-reference.html#useref

票数 53
EN

Stack Overflow用户

发布于 2019-07-19 04:15:43

如果你想在map函数中使用ref:

代码语言:javascript
复制
export default () => {
    const items = ['apple', 'orange', 'mango'];

    // 1) create an array of refs
    const itemRefs = useRef(items.map(() => React.createRef()));

    useEffect(() => {
        // 3) access a ref, for example 0
        itemRefs.current[0].current.focus()
    }, []);

    return (
        <ul>
            {items.map((item, i) => (
                // 2) attach ref to each item
                <li key={item} ref={itemRefs.current[i]}>{item}</li>
            ))}
        </ul>
    );
};
票数 12
EN

Stack Overflow用户

发布于 2020-04-08 06:52:44

在React Native中以非冗长的方式展示了它是如何为我工作的一个例子。

代码语言:javascript
复制
export function Screen() {

   /*
    * Call function for example of access to the component, 
    * being able to access calls to its functions.
    */
    const callRef = () => {
       testeRef.example();
    };

    return (
       <CustomComponent ref={(e) => testRef = e}></CustomComponent>
    );
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53678308

复制
相关文章

相似问题

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