在 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')}
/>