看下面的例子 https://codesandbox.io/s/km2n35kq3v
初始值是硬编码的。
<Wizard initialValues={{ employed: true, stooge: 'larry' }}
但是,我想在componentdidmount中进行ajax调用,获取初始值,然后在调用完成时(重新)设置初始值。
<Wizard initialValues={this.state.myInitValues}
什么也没有发生,当表单重新呈现时,初始值不会改变-我缺少什么?
这个例子只适用于硬编码值
不。
只要这些值在树中取得更高,则 <Wizard/> 组件,它们可以作为道具传入。反应终形甚至有细颗粒 isEqual() 控制何时 initialValues 属性是否更改(在这种情况下,表单将重新初始化)。
<Wizard/>
isEqual()
initialValues
希望这有帮助…
我想出来了…这个例子只适用于硬编码的值,否则我不应该假设。
原来initialValues被传递到向导组件,并在构造函数的向导组件中设置为state。
当ajax调用返回时,构造函数不会再次执行。