pro-components icon indicating copy to clipboard operation
pro-components copied to clipboard

🐛[BUG]两个ProForm表单下存在相同name的ProFormSelect时,request得到的结果会造成覆盖

Open LiZhiHao97 opened this issue 3 years ago • 0 comments
trafficstars

🐛 bug 描述

我在页面中使用了两个ProForm,并各自在它们内部引入了ProFormSelect组件,如果这两个ProFormSelect拥有相同的name,并且在request中传入了不同的函数,其中一个ProFormSelect的可选项会覆盖另一个。

📷 复现步骤

如以下代码所示,第二个ProForm中的ProFormSelect延迟2秒渲染,当第二个ProFormSelect渲染后,第一个ProFormSelect的可选项从选项1变为选项2

function App() {
  const [display, setDisplay] = useState(false);
  
  useEffect(() => {
    setTimeout(() => {
      setDisplay(true);
    }, 2000)
  }, []);

  return (
    <div className="App">
      <ProForm>
        <ProFormSelect
          name="select"
          request={async () => [{ label: "选项1", value: "1" }]}
        />
      </ProForm>
      <ProForm>
        {display ? (
          <ProFormSelect
            name="select"
            request={async () => [{ label: "选项2", value: "2" }]}
          />
        ) : null}
      </ProForm>
    </div> 
  );
}

🏞 期望结果

两个ProFormSelect的可选项应各自为它们的props request返回得到的结果。

© 版本信息

  • ProComponents 版本: 1.1.15
  • 浏览器环境 chrome 104
  • 开发环境:mac os Monterey

LiZhiHao97 avatar Aug 10 '22 12:08 LiZhiHao97