Reactjs 来自状态的React-Ant Design defaultValue不起作用

Reactjs 来自状态的React-Ant Design defaultValue不起作用,reactjs,antd,Reactjs,Antd,我正在使用Ant design for react,其中他们在select元素内联中硬编码了默认值: defaultValue={['a10', 'c12']} 我试图使用与react state完全相同的值,但它根本不显示。如果我使用value而不是defaultValue,则会显示它(与状态中的值相同),但它不可编辑,因此使用value不是一个选项 因此,基本上我必须使用文档中显示的defaultValue,但我完全惊讶于它根本没有呈现。但是,如果我硬编码完全相同的数据['a10','c1

我正在使用Ant design for react,其中他们在select元素内联中硬编码了默认值:

defaultValue={['a10', 'c12']}
我试图使用与react state完全相同的值,但它根本不显示。如果我使用
value
而不是
defaultValue
,则会显示它(与状态中的值相同),但它不可编辑,因此使用
value
不是一个选项

因此,基本上我必须使用文档中显示的
defaultValue
,但我完全惊讶于它根本没有呈现。但是,如果我硬编码完全相同的数据
['a10','c12']
,效果很好!这里的陷阱是什么?有没有人遇到过这样的问题

请参见下面的屏幕截图。谢谢

截图1。值在状态下硬编码且有效时,将填充选择字段

截图2。尝试使用useEffect更新状态(最终该数据将来自API),而不是硬编码,但它不会出现在选定字段中。但是您可以在
JSON.stringify()中看到状态中有值

截图3。这就是我使用defaultValue的方式,如文档中所示


useffect
通常在安装/更新组件后运行<代码>默认值
仅用于组件的初始渲染。因此,在案例1中,状态是硬编码的,因为默认值是在输入的(选择)初始渲染期间提供的,所以会显示该值


useffect
中更新状态的情况下,状态不会反映出来,因为输入的初始呈现已经完成,并且默认值将不再用于特定输入。如果您需要状态来控制输入的值(选择),请尝试将
value
传递到输入,而不是
defaultValue
。这使得组件受到控制。

useffect
通常在安装/更新组件后运行<代码>默认值仅用于组件的初始渲染。因此,在案例1中,状态是硬编码的,因为默认值是在输入的(选择)初始渲染期间提供的,所以会显示该值


useffect
中更新状态的情况下,状态不会反映出来,因为输入的初始呈现已经完成,并且默认值将不再用于特定输入。如果您需要状态来控制输入的值(选择),请尝试将
value
传递到输入,而不是
defaultValue
。这将使组件受到控制。

使用value而不是defaultValue的多个名称是不可编辑的。是否有一种方法可以像在示例中一样以内联方式预填充状态值并使其可编辑?如果我使用value而不是defaultValue,那么它是不可编辑的,或者如果您只需要使用
defaultValue
,那么您可以延迟
select
组件的渲染。仅当在defaultValue中看到值时才有条件地渲染它。选择属于你这里有一个简单的例子。。以下是使用value而不是defaultValue来查找多个名称的内容。value是不可编辑的。是否有一种方法可以像在示例中一样以内联方式预填充状态值并使其可编辑?如果我使用value而不是defaultValue,那么它是不可编辑的,或者如果您只需要使用
defaultValue
,那么您可以延迟
select
组件的渲染。仅当在defaultValue中看到值时才有条件地渲染它。选择属于你这里有一个简单的例子。。这是你要找的