【发布时间】:2021-02-18 02:38:20
【问题描述】:
我是 ReactJS 和 AntDesign 的新手。
我正在尝试获取一组 <Select> 组件来共享状态,因此当您选择第一个组件时,它会填充表单上下一个组件的选项,它必须是 <Select>,我不能使用<Cascade>,因为它会使 UI 过于复杂(用户不太熟悉计算机)。
这是我想要实现的示例,useEffect 上的数据将来自后端的单个请求
https://stackblitz.com/edit/react-xarwcj-sghpze?file=index.js
选择第一个选项后,我预计第二个下拉列表将被子数组填充,但我得到一个空下拉列表。
我很确定该值正在设置,但由于我的一些错误配置,React 或 Ant 没有重新渲染它,但我不明白为什么。
【问题讨论】:
-
我看到了两个问题。首先,此调用中的
valueformInstance.setFieldsValue({ subList: value.list });只是所选项目的ID,因此value.list返回未定义。您需要找到相关对象const sub = list.find(o => o.id === value);。其次,setFieldsValue没有调用重新渲染。 -
感谢您的评论!如何让 setFieldsValue 调用重新渲染?
-
我认为它实际上一直在调用一个,但是由于您已将
undefined传递给setFieldsValue它并没有呈现第二个选择。不知道为什么您现在收到map错误。
标签: javascript reactjs jsx antd ant-design-pro