首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >React:如何将状态传递给子组件并调用子组件中的函数来使用该状态

React:如何将状态传递给子组件并调用子组件中的函数来使用该状态
EN

Stack Overflow用户
提问于 2021-02-05 12:51:50
回答 2查看 969关注 0票数 0

我在功能组件中实现一个组件,其中有其他几个子组件,它们相互传递数据。我需要将数据从父组件传递到子组件,并在那里调用一些函数来使用它。在类组件集中,我们使用componentdidupdate,但无法理解如何在功能组件中进行操作。

一个想法是使用useEffect钩子,但无法使用它。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-02-05 12:58:37

我将在这里尝试一下,因为我们没有上下文或代码可供使用。

useEffect接受依赖数组,当值或对象引用发生更改时,它将对该数组作出反应。

代码语言:javascript
运行
复制
const ChildComponent = (props) => {

  const {
    valuePassedFromParent
  } = props;

  const actionFunction = (value) => {
     //perform some tasks with value passed from parent when it changes
 }

  //this is similar to componentDidUpdate, but it reacts to changes in valuePassedFromParent though props since its in the useEffect dependency array
  useEffect(() => {    
    //do something with valuePassedFromParent
    actionFunction(valuePassedFromParent);
  },[valuePassedFromParent]);


  return (
    <div>
    </div>
  )

}
票数 0
EN

Stack Overflow用户

发布于 2021-02-05 12:56:58

您可以使用useEffect复制componentdidupdate的行为,如下所示:

代码语言:javascript
运行
复制
const [myState,setMyState] = useState();
useEffect(() => {
   ...
},[myState]);

函数使用效果将在每次更新myState时运行,就像componentdiduptate所做的那样。

在您的示例中,如果我理解得很好,则由父组件给出状态,所以只需将数组依赖项中的myState替换为通过子组件的支柱提供的状态。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66063632

复制
相关文章

相似问题

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