小编Lau*_*nce的帖子

React Hooks - 如何使用 useEffect 之外的变量声明来定位元素子元素(使用 useRef)?

我正在试验 React Hooks,我想知道如何使用 useRef 定位元素儿童。实际上,我知道如何使用 useRef 定位一个元素。但是当我尝试将子项分配给变量时遇到了一些问题。

这是一个例子:

import React, { useState, useEffect, useRef } from "react";
import "./styles.css";

export default function App() {
  let containerRef = useRef(null);

  let title, subtitle;

  const myEvent = () => {
    console.log(title);
  };

  useEffect(() => {
    title = containerRef.children[0];
    subtitle = containerRef.children[1];
  }, []);

  return (
    <div className="App" ref={el => (containerRef = el)}>
      <h1 onClick={myEvent}>Hello World!</h1>
      <h2>What's going on ?</h2>
    </div>
  );
}

Run Code Online (Sandbox Code Playgroud)

我想访问标题和副标题变量以在 useEffect 之外创建一个函数。我知道我对标题副标题的第一个声明是错误的。但实际上我不知道如何解决这个问题。我尝试使用useState,但未能解决我的问题。 …

reactjs react-hooks

4
推荐指数
1
解决办法
5259
查看次数

我可以在 useEffect 之外声明一个变量吗?反应钩子

我正在学习 React Hooks,实际上我正在使用 useEffect 方法。完全没问题,但是我收到了一些关于我的变量声明的警告。这是我写的一个例子:

import React, { useRef, useEffect } from 'react';

function App(){
  let containerRef = useRef(null);

  let myVariable;

  useEffect(){
    myVariable = containerRef.children[0];
  }

  return(
    <div className="container" ref={el => containerRef = el}>
        <h1>Hey, I'm Laurie </h1>
        <p> Nice to e-meet you!</p>
    </div>
  )
}

Run Code Online (Sandbox Code Playgroud)

这只是我所做的一个简单且未完成的示例,用于使用 GSAP 为我的网站制作动画。我使用useRef访问 DOM 元素,我只找到了这个解决方案。但是我的控制台给我写了一些警告,我很迷茫。

我得到的警告:

React Hook useEffect 内部对myVariable变量的赋值将在每次渲染后丢失。要随着时间的推移保留该值,请将其存储在 useRef Hook 中,并将可变值保留在 '.current' 属性中。否则,您可以直接在 useEffect 中移动此变量。

有人可以帮我解决这个问题吗?

javascript reactjs react-hooks

1
推荐指数
1
解决办法
6580
查看次数

标签 统计

react-hooks ×2

reactjs ×2

javascript ×1