如何从功能组件的父级更改子状态组件

阿米尔雷扎·贝鲁兹(Amirreza Behrouzi)

我创建了一个倒数计时器组件,并且在该组件附近有一个Button

我想当用户单击此按钮时,重置计时器

为此,我应该更改子状态

我找到了从孩子那里改变父母身份的解决方案,但是我没有找到解决方案

可以用ref解决吗?(我的计时器组件是功能组件)

拉胡尔·莫尔(Rahul More)

解决方案是转发React ref转发:此博客将描述更多:https : //medium.com/javascript-in-plain-english/react-refs-both-class-and-functional-components-76b7bce487b8

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

class ChildClass extends React.Component {
  constructor(props) {
    super(props);
    this.state = {
      timer: 100
    };
    this.resetTimer = this.resetTimer.bind(this);
  }
  resetTimer() {
    this.setState({
      timer: 0
    });
  }
  render() {
    let { timer } = this.state;
    return <span>{timer}</span>;
  }
}

const ChildFunction = React.forwardRef((props, ref) => {
  const [timer, setTimer] = useState(100);
  const resetTimer = () => {
    setTimer(0);
  };
  React.useImperativeHandle(ref, ()=>({
    resetTimer
  }));
  return <span>{timer}</span>;
});

export default function App() {
  let childClassRef = React.createRef(null);
  let childFuncRef = React.createRef(null);
  const resetClassTimer = () => {
    childClassRef.current.resetTimer();
  };
  const resetFuncTimer = () => {
    childFuncRef.current.resetTimer();
  };
  return (
    <div className="App">
      <ChildClass ref={childClassRef} />
      <button onClick={resetClassTimer}>Reset</button>
      <br/>
      <ChildFunction ref={childFuncRef} />
      <button onClick={resetFuncTimer}>Reset</button>
    </div>
  );
}

我添加了带有类组件和功能组件的ref转发。React.js和React本机都是一样的。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

react:如何从其父级更改子组件(功能组件,而不是类组件)的状态?

来自分类Dev

如何在父级的子级组件中设置状态?

来自分类Dev

如何传递要在子组件中使用的父级状态?

来自分类Dev

如何从类组件(父组件)更改功能组件(子组件)中的useState

来自分类Dev

如何从子组件更改父组件的状态?

来自分类Dev

如何从子组件更改父组件的状态?

来自分类Dev

从子级更改父级状态(两者均为功能组件)

来自分类Dev

如何设置子组件的子组件的父组件状态

来自分类Dev

如果父状态值更改,如何更新子组件

来自分类Dev

更新父级状态后如何将React子级组件重置为原始状态

来自分类Dev

父级状态更改后,子级组件道具未更新

来自分类Dev

子组件更新时更改父状态

来自分类Dev

React-子组件的父类组件功能更改类

来自分类Dev

尝试从子组件React Hooks更改父级中的状态

来自分类Dev

如何更改从父级无状态传递的子级组件值

来自分类Dev

如何将状态与父组件传递给子组件

来自分类Dev

如何将子组件的状态传递给父组件?

来自分类Dev

如何在父组件中使用子组件的状态?

来自分类Dev

如何从ReactJs的子组件中跟踪父组件的状态?

来自分类Dev

如何正确设置子组件和父组件的状态?

来自分类Dev

根据子组件中父组件状态的更改,在父组件上执行代码

来自分类Dev

如何将子级组件动态注入父级

来自分类Dev

如何根据父级动态调整子级组件的高度?

来自分类Dev

我应该如何在父级的render方法中重新创建有状态的子级组件?

来自分类Dev

我应该如何在父级的render方法中重新创建有状态的子级组件?

来自分类Dev

如何获得组件的父级的父级?

来自分类Dev

如何获得组件的父级的父级?

来自分类Dev

React功能组件-如何从父级访问子级方法

来自分类Dev

父状态改变后如何停止子组件功能再次运行?

Related 相关文章

  1. 1

    react:如何从其父级更改子组件(功能组件,而不是类组件)的状态?

  2. 2

    如何在父级的子级组件中设置状态?

  3. 3

    如何传递要在子组件中使用的父级状态?

  4. 4

    如何从类组件(父组件)更改功能组件(子组件)中的useState

  5. 5

    如何从子组件更改父组件的状态?

  6. 6

    如何从子组件更改父组件的状态?

  7. 7

    从子级更改父级状态(两者均为功能组件)

  8. 8

    如何设置子组件的子组件的父组件状态

  9. 9

    如果父状态值更改,如何更新子组件

  10. 10

    更新父级状态后如何将React子级组件重置为原始状态

  11. 11

    父级状态更改后,子级组件道具未更新

  12. 12

    子组件更新时更改父状态

  13. 13

    React-子组件的父类组件功能更改类

  14. 14

    尝试从子组件React Hooks更改父级中的状态

  15. 15

    如何更改从父级无状态传递的子级组件值

  16. 16

    如何将状态与父组件传递给子组件

  17. 17

    如何将子组件的状态传递给父组件?

  18. 18

    如何在父组件中使用子组件的状态?

  19. 19

    如何从ReactJs的子组件中跟踪父组件的状态?

  20. 20

    如何正确设置子组件和父组件的状态?

  21. 21

    根据子组件中父组件状态的更改,在父组件上执行代码

  22. 22

    如何将子级组件动态注入父级

  23. 23

    如何根据父级动态调整子级组件的高度?

  24. 24

    我应该如何在父级的render方法中重新创建有状态的子级组件?

  25. 25

    我应该如何在父级的render方法中重新创建有状态的子级组件?

  26. 26

    如何获得组件的父级的父级?

  27. 27

    如何获得组件的父级的父级?

  28. 28

    React功能组件-如何从父级访问子级方法

  29. 29

    父状态改变后如何停止子组件功能再次运行?

热门标签

归档