如何在Form.Input上设置预定义值或语义UI中的输入组件做出反应?我试过传递defaultValue =" someVal"作为一个有效的道具。但是如果道具发生变化,这并不会更新价值。我试过传递道具值=" someVal"预先填充它但阻止任何编辑该字段的访问权限。所有击键都被忽略。一定有办法基本做到
并在触发componentWillReceiveProps时仍然更新值?
以下是输入组件I' m
这是使用下面的输入作为控件的表单 https://react.semantic-ui.com/collections/form https://react.semantic-ui.com/elements/input
我有一个AutoSaveInput.jsx,它实际上使用onChange渲染下面的输入,以自动保存每个击键(仍然需要添加去抖动)。
<Label basic>{this.props.label}</Label>
<Form.Input
defaultValue={this.props.defaultValue}
disabled={this.props.disabled}
name={this.props.name}
onChange={this.onChange}
error={this.state.isDirty}
/>
上面的输入最初工作正常。但是,当新的道具进入时,this.props.label更新正常,但Form.Input值根本不更新。相反,它仍然显示以前的值。
此外,如果我将其更改为以下值,则会使用新道具更新值,但您无法输入输入本身。光标只是跳转到输入的末尾,并且不允许您输入任何其他内容。
<Label basic>{this.props.label}</Label>
<Form.Input
value={this.props.defaultValue}
disabled={this.props.disabled}
name={this.props.name}
onChange={this.onChange}
error={this.state.isDirty}
/>
此外道具正在通过ReactRouter v4进行更新,方法是点击一个Click,其中var是加载不同表单内容进行编辑的内容。
答案 0 :(得分:1)
有这个工作。我需要在我的组件状态中保持值,该组件呈现Form.Input并传递value = {this.state.value} vs {this.props.value}。