【发布时间】: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