【问题标题】:How to use document.getElementById() with styled components in react?如何在反应中使用带有样式组件的 document.getElementById()?
【发布时间】:2021-09-21 08:21:44
【问题描述】:

我想在我的 react 项目中使用像 document.getElementById() 这样的 JS 函数。我是样式化组件的新手,不知道如何将这些功能与它们一起使用。 不要参考官方的'styled-components'页面,我已经看过了。

【问题讨论】:

  • 元素有ID吗?如果是这样,你可以使用它
  • 我知道 id 参数,但我应该把这个语句放在哪里?那是里面react函数return()还是外面?
  • 元素创建后?

标签: javascript html css reactjs styled-components


【解决方案1】:

您可以为此使用useRef react Hook。

const reqElement = React.useRef(null);

现在,您可以在所需元素中添加ref={reqElement}

之后你可以使用reqElement.current 来做那些你可以在javaScript 中通过document.getElementById() 做的事情。

useRef hook refrence

【讨论】:

  • 这真的很有帮助,我终于解决了我的问题。谢谢。
  • 当你想在 React 中保持对元素的引用时,这是正确的方法
【解决方案2】:

我终于在这里找到了我的问题的答案。我将收集到的信息分为以下几点。

  1. 样式化组件确实有一个 id 参数,但我们不得在 react 中使用它来实现 DOM 功能,因为 react 背后的主要动机是防止真实 DOM 中的频繁更改。
  2. 我们可以在 React 功能组件中使用 useRef() 钩子在 React 中传递引用。 (请看上面 Dibas 的回答。)
  3. 我犯了一个错误,没有使用 useState() 挂钩来存储组件的状态,而是使用了标识符,这是错误的,因为 useState 有助于每当状态改变时重新渲染组件。
  4. useEffect() 挂钩中使用清理函数来防止内存泄漏。

这里是视差效果视频https://youtu.be/Q5y6pwoE3cM的链接,希望对您有所帮助。

【讨论】:

    猜你喜欢
    • 2018-05-10
    • 2019-03-24
    • 2018-04-29
    • 1970-01-01
    • 2020-12-03
    • 2019-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多