当前位置:   article > 正文

解决select(antd-design组件库)默认选中请求数据的第一项。_antd select 默认选中

antd select 默认选中

出现这种问题的原因:一般我们的select的下拉项的数据都是请求接口出来的,但是会出现这样问题,请求数据是需要一定的时间(比如这个接口是异步请求),可能接口还没请求出来页面都已经渲染完成了。那么等这个接口请求出来,默认选中第一项也就不会再生效了。

解决方式:一般这个下拉菜单接口的数据是这样的形式,list:[{id:1,value:'中国',...},{id:2,value:'美国,...'}]。当页面初始化的时候,我们可以进行判断,如果接口数据请求出来了,并且我们没有选择下拉框选项的时候,就把路由重置到第一项的id。当我们选中某一项的时候,我们把路由重置到该项的id。

核心代码:

  1. // 初始值
  2. const [applicationId, setApplicationId] = useState(Number(match?.params.applicationId));
  3. //初始化进入页面的时候
  4. useEffect(() => {
  5. if (!id && list.length > 0) {
  6. history.replace(`/domestic/personalizedRecommendation/${list[0].id}`);
  7. }
  8. }, [appList]);
  9. // 改变select的回调
  10. const handleChangeApp = (id) => {
  11. history.replace(`/domestic/personalizedRecommendation/${id}`);
  12. setApplicationId(id);
  13. };
  14. // 路由页面
  15. /domestic/personalizedRecommendation/:id

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/151757?site
推荐阅读
相关标签
  

闽ICP备14008679号