模态点击上的 antd 模态未打开

antd modal on modal click not opening

我有一个 antd modal 如下代码所示,现在当我 select Create Manual 并点击 Next, I want to close this modal and open another Modal2 但在单击下一步后另一个模式没有打开。

这是我的代码。 (Codesandbox 现场演示 - link

请提出一个解决方法来生成他的第二个模态。谢谢

import React, { useState } from "react";
import ReactDOM from "react-dom";
import "antd/dist/antd.css";
import "./index.css";
import { Modal, Button, Radio } from "antd";

const App = () => {
  const [isModalVisible, setIsModalVisible] = useState(false);
  const [selectRadio, setselectRadio] = useState("preselect");
  const showModal = () => {
    setIsModalVisible(true);
  };
  const select = (e) => {
    // you can save the value in here
    setselectRadio(e.target.value);
    console.log(e.target.value);
  };
  function modalclick() {
    if (selectRadio === "preselect") {
      alert("pre-select");
    } else {
      //---------------> UNABLE TO OPEN ANOTHER MODAL HERE   <-------------------------------------
      <Modal title="Create Test Suite" visible={isModalVisible}>
        MODAL 2 COMES HERE
      </Modal>;
      alert("manual");
    }
  }

  return (
    <>
      <Button type="primary" style={{ float: "right" }} onClick={showModal}>
        Create Test Suite
      </Button>
      <Modal
        title="Create Test Suite"
        visible={isModalVisible}
        footer={[
          <Button key="cancel" onClick={() => setIsModalVisible(false)}>
            Cancel
          </Button>,

          <Button type="primary" key="next" onClick={modalclick}>
            Next
          </Button>
        ]}
      >
        <Radio.Group
          defaultValue="preselect"
          buttonStyle="solid"
          onChange={(e) => {
            select(e);
          }}
        >
          <Radio value="preselect">Create from Preselect</Radio>
          <Radio value="manual">Create Manual</Radio>
        </Radio.Group>
      </Modal>
    </>
  );
};

ReactDOM.render(<App />, document.getElementById("container"));

要显示模式 2,您可以使用 useState hookuseRef。在这两种方法中,您需要先将此模态 2 放入“应用程序”的 return

useState 方式:只需使用 state 来控制可见性,就像您在 modal 1[ 中所做的那样=27=], 简单.

useRef方式:这个有点复杂。您将需要在模态组件内使用 useImperativeHandle,并创建一个函数(也在内部)来控制可见性。因此,在您的页面中,您只需调用组件内部的函数即可显示模式。使用这种方法,可见性状态控制的逻辑就离开了页面,进入了组件。