как заставить перемонтировать reactNode?

Я пытаюсь сбросить компонент в своих детских реквизитах.

      function ActionsMenu({ children }: { children: ReactNode }){
  return (
    <Dropdown onOpen={ /* trigger remount */ } placeholder="actions ▼">
      {children}
    </Dropdown>
}

Я мог бы легко сделать это с помощью ReactComponent, например:

      function ActionsMenu({ Content }: { Content: ReactComponent }){
  const [key, setKey] = useState(0);
  return (
    <Dropdown onOpen={ () => setKey(x => x+1) } placeholder="actions ▼">
      <Content key={key} />
    </Dropdown>
}

но это потребует от меня использования этого api:

      /* undesired ReactComponent syntax :( */
<ActionsMenu Content={() => <div><Button onClick={...}/><Button onClick={...}/></div>}/>

/* desired ReactNode syntnax :) */ 
<ActionsMenu>
  <div>
   <Button onClick={...}/>
   <Button onClick={...}/>
  </div>
</ActionsMenu>

Как мне перемонтировать ReactNode?

0 ответов

Другие вопросы по тегам