使用语义UI预先填充输入文本

时间:2017-10-11 21:12:17

标签: reactjs semantic-ui semantic-ui-react

如何在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是加载不同表单内容进行编辑的内容。

1 个答案:

答案 0 :(得分:1)

有这个工作。我需要在我的组件状态中保持值,该组件呈现Form.Input并传递value = {this.state.value} vs {this.props.value}。