首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >React:将状态传递回父组件

React:将状态传递回父组件
EN

Stack Overflow用户
提问于 2022-10-27 16:23:38
回答 1查看 23关注 0票数 1

我对这种反应相当陌生。我浏览过许多类似问题的线程,遵循说明,但无法破解这个问题:我有一个打开对话框窗口的父组件,但无法处理关闭操作。我正在使用sap UI5库,但我觉得这个问题纯粹是与反应相关的。

  1. In parent‘s

代码语言:javascript
运行
复制
const ExecutionsTable = () => {
  const [executionDialogIsOpen, setExecutionDialogIsOpen] = useState(false);

  const handleOpenExecutionDetailsClick = () => {
    setExecutionDialogIsOpen(true);
  };

  return (
    <>
      <Button
         onClick={() => {
           handleOpenExecutionDetailsClick(true);
         }}
        >
         Details
      </Button>
       {<ExecutionDialog setExecutionDialogIsOpen={setExecutionDialogIsOpen}/>}
    </>
  );
}

子组件

代码语言:javascript
运行
复制
const ExecutionDialog = (props) => {
  return (
      <Dialog
         open={props.executionDialogIsOpen}
         onAfterClose={() => props.setExecutionDialogIsOpen(false)}
      />   
  );
}

我正在犯错误:

代码语言:javascript
运行
复制
ExecutionDialog.js:35 Uncaught TypeError: props.setExecutionDialogIsOpen is not a function
    at Dialog.onAfterClose (ExecutionDialog.js:35:1)
    at Dialog._fireEvent (UI5Element.js:732:1)
    at Dialog.fireEvent (UI5Element.js:699:1)
    at Dialog.close (Popup.js:511:1)
    at HTMLDocument._keydownListener (OpenedPopupsRegistry.js:38:1)
onAfterClose @ ExecutionDialog.js:35
_fireEvent @ UI5Element.js:732
fireEvent @ UI5Element.js:699
close @ Popup.js:511
_keydownListener @ OpenedPopupsRegistry.js:38

你能告诉我我做错了什么吗?非常感谢。

代码语言:javascript
运行
复制
EN

回答 1

Stack Overflow用户

发布于 2022-10-28 14:38:47

我已经知道了,ExecutionDialog组件应该是这样的:

代码语言:javascript
运行
复制
<ExecutionDialog setExecutionDialogIsOpen = {setExecutionDialogIsOpen} executionDialogIsOpen = {executionDialogIsOpen}/>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74225299

复制
相关文章

相似问题

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