如下图所示,defaultValue设置为0之后,应该显示value对应的那一项,而不是直接显示设置的值。
原因:下拉列表,是一个异步请求,而设置defaultValue在请求之前已经完成。
请问该怎么办呢?
请教antd中,Select组件的defaultValue,如何在异步请求后有效?
hengchengfei
#1
dmaria58
#2
defaultValue=“0"改成defaultValue={this.state.categories[0].type?this.state.categories[0].type.tostring():”"}
dmaria58
#5
你再设置一个新的state参数,并且设置defaultValue为你新设置的参数,当this.state.categories异步获取到的时候,也更新那个state值,这样defaultValue里面的内容才会刷新
dmaria58
#8
你在map的时候,其实defaultvalue已经取到值了,但是因为下拉内容没渲染完成,所以没法实现默认选中第一项,this.state.categories内直接放map好的数组
lobos
#9
如果想实现非受控组件(用defaultValue),两个办法,第一个服务端没有返回数据的时候,不render Select,render一个占位的placeholder。另一个办法,给Select加一个key,值为defaultValue。
2 Likes