在 React 中,defaultValue
是一个非受控属性,而 value
是一个受控属性。这两个属性都可以用于设置 Input
组件的值,但是它们的工作方式有所不同。
-
value
:这是一个受控属性,意味着输入框的值由 React 状态控制。每当状态更新时,输入框的值也会更新。如果你设置了value
,你也需要提供一个onChange
处理器,以便更新这个值。 -
defaultValue
:这是一个非受控属性,意味着输入框的值不受 React 控制。它只设置输入框的初始值,但不会在后续的渲染中更新。如果你设置了defaultValue
,输入框的值可以被用户更改,但不会触发任何 React 的状态更新。
在你的问题中,你提到 defaultValue={value}
,但是输入框没有显示任何值。这可能是因为 value
变量在初始化 Input
组件
所以这么使用onChange和value配合使用:
js
<Input
placeholder={i18nValue('请输入')}
style={{ width: '100%' }}
allowClear
// defaultValue={value}
value={value}
maxLength={100}
onChange={(event) => setValue(event.target.value, preRowData, rowIndex, 'resultIntroduction')}
/>