我在我的项目中使用Ant Design。我用useEffect从redux store中获取数据,如下所示;
const settingsRedux = useSelector(state => state.SETTINGS)
字符串
之后,我将此数据用于输入的defaultValue
<Input
defaultValue={settingsRedux.background_image}
onChange={e => dispatch({
type: BACKGROUND_IMAGE,
payload: e.target.value
})}
/>
型
它实际上工作。但出现控制台错误。
Warning: [antd: Form.Item] `defaultValue` will not work on controlled Field. You should use `initialValues` of Form instead.
型
9条答案
按热度按时间ar7v8xwq1#
您可以将Form组件中的initialValues设置为object。
字符串
在这里结账:https://ant.design/components/form/
zpgglvta2#
您可能希望使用
value
prop而不是defaultValue
。当要在非受控输入中设置初始值时,使用默认值。目前,您已使组件受控,因此可能必须使用值属性。阅读更多关于这一点在这里:https://reactjs.org/docs/forms.html#controlled-components
cwdobuhd3#
正确的做法是使用字段。你的代码应该是这样的。
字符串
您可以在文档https://ant.design/components/form/中查看更多示例
cyej8jka4#
我在创建数据网格时遇到了这个问题,无法看到第一个输入的defaultValue。如果你想使用不受控制的输入,你可以使用你的自定义输入,它是受控制的,并设置一个回调函数来获取结果,就像从不受控制的输入。在我的例子中,我使用onBlur action来获取更改的值。
字符串
axzmvihb5#
你可以通过在表单中添加一个引用来实现你的目标
字符串
sf6xfgos6#
你可以用这个,它对我有用:
字符串
lsmd5eda7#
查看您的代码,我假设您没有使用Ant Design表单。
由于它是受控字段,因此需要使用value prop而不是defaultValue prop。如果您看到空字段,则SETTINGS的redux初始状态可能为空''字符串。
在redux中设置你的初始值为合适的值。
wxclj1h58#
字符串
在我的例子中,这工作得很好,特别是当数据在组件加载时不可用时,比如说你从某个API获取数据
b5buobof9#
如果你要使用
defaultValue
属性,你需要先将你的值转换为string
。示例:
const defValue = 123;
个<Input defaultValue={defValue.toString()} />
个我的工作结束了。