【问题标题】:React Accordion component, calling hook after handler from within collapseReact Accordion 组件,在处理程序后从崩溃中调用钩子
【发布时间】:2023-03-24 03:53:01
【问题描述】:

我有一个 React Bootstrap 手风琴组件。在手风琴的每张卡片中都有一个要完成的任务,然后是一个“保存”按钮。此按钮将完成的任务写入数据库。

我还希望保存按钮折叠当前卡片并展开下一张卡片。我可以通过创建一个调用 useAccordionToggle(eventKey) onClick(在调用子级之前)的客户 Button 组件来实现这一点:

function AccordianButton({ children, eventKey }) {
    return (
      <Button
        onClick={useAccordionToggle(eventKey)}
      >
        {children}
      </Button>
    );
  }

到目前为止一切顺利!

问题是我只想折叠手风琴卡一旦我确定数据库写入成功。

我想不出办法来做到这一点。如果我尝试在处理程序函数中调用 useAccordionToggle,我会收到一个钩子错误,因为我在组件之外。有没有办法做到这一点?

【问题讨论】:

  • 您可以使手风琴切换状态依赖于从父级传递下来的道具,并在请求成功后有条件地呈现。
  • 你能包含更多代码吗?如果我们可以重现它,调试您的代码会更容易。请阅读stackoverflow.com/help/minimal-reproducible-example

标签: reactjs react-hooks accordion react-bootstrap


【解决方案1】:

我意识到您可以使用 activeKey 参数并使用 React 组件中的状态来驱动它,从而可以从任何地方进行控制。比使用 eventKey 参数容易得多。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-02-17
    • 1970-01-01
    • 2016-06-17
    • 1970-01-01
    • 2019-10-06
    • 2017-06-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多