所以基本上想要为react-leaflet Popup组件定制关闭,接缝对于本机API传单来说不是一个大问题,但是对于react-leaflet中的react组件我找不到解决方案。
假设我们有一个组件 Accordion,其内部状态为 isOpen,因此您可以关闭和打开该组件。
我们现在想要一个父组件,它也有一个状态 isOpen 并有按钮。在此组件中,我们有 2 个 Accordion,我们将其传递给 Accordion isOpen,并且我们希望如果父级更改状态 isOpen Accordion 接受此操作。
所有组件都是功能组件
const Accordion = ({ isOpen: parentIsOpen = false }) => {
const [isOpen, setIsOpen] = useState(parentIsOpen);
const handleSetIsOpen = () => setIsOpen(!isOpen);
return (
<div>
I'm open: {isOpen}
<button onClick={handleSetIsOpen}>toggle isOpen child</button>
</div>
);
};
const MasterComponent = () => {
const [isOpen, setIsOpen] = useState(false);
const handleSetIsOpen = () => setIsOpen(!isOpen);
return (
<div>
<button onClick={handleSetIsOpen}>toggle isOpen parent</button>
<Accordion isOpen={isOpen} />
<Accordion isOpen={isOpen} /> …Run Code Online (Sandbox Code Playgroud)