检查另一个功能组件的状态

时间:2020-07-29 23:02:22

标签: reactjs callback react-hooks react-props use-state

我是新来的反应者,我想调用外部函数的状态,例如:

 export default function Child() {          
  const [succeeded, setSucceeded] = useState(false);
}

    export default function Parent() {     
          if(Child.succeeded){
             // do the following
          }
    }

我知道props仅用于const对象,并且我不想将两个函数合并在一个signle中以保持事物的有条理,我想 检查以获取孩子的状态以执行下一步,或回调具有新状态的父功能以通知它。有什么办法吗?非常感谢您的宝贵时间。

1 个答案:

答案 0 :(得分:0)

另一种方法是您可以使用 useRef ,在某些情况下这非常方便。

import React, {useState} from "react";


export default function Child({nameRef}) {
  const [name, setName] = useState('');
  React.useEffect(() => {
    nameRef.current = name;    
  }, [name]);
  return (
   <>
      <input nameRef={nameRef} type="text" onChange={event => setName(event.target.value)} />
   </>
  );
}

import React, { useState, useRef } from "react";
import ReactDOM from "react-dom";

import "./styles.css";
import Child from './Child';

function App() {
  let [name, setName] = useState("Nate");

  let nameRef = useRef();

  const submitButton = () => {
    console.log(nameRef.current);
  };

  return (
    <div className="App">
      <p>{name}</p>

      <div>
        <Child nameRef={nameRef} />
        <button type="button" onClick={submitButton}>
          Submit
        </button>
      </div>
    </div>
  );
}

const rootElement = document.getElementById("root");
ReactDOM.render(<App />, rootElement);