Reactjs 反应输入-无默认值
我很困惑,我不知道怎么了。默认值有时只显示,有时当默认值显示时,如果我按enter键或单击submit,它将导致为空字符串 我希望的结果是:我希望输入显示默认值,即dueDateObject.dueDate。然后我希望能够提交带有默认值的输入并保存它 问题::现在,当我保存默认值时,它有时会将其保存为空字符串 提前感谢:)Reactjs 反应输入-无默认值,reactjs,forms,Reactjs,Forms,我很困惑,我不知道怎么了。默认值有时只显示,有时当默认值显示时,如果我按enter键或单击submit,它将导致为空字符串 我希望的结果是:我希望输入显示默认值,即dueDateObject.dueDate。然后我希望能够提交带有默认值的输入并保存它 问题::现在,当我保存默认值时,它有时会将其保存为空字符串 提前感谢:) this.editDueDatekeypress(e,keyName,dueDateObject)} onChange={this.onChangeEditDueDate}
this.editDueDatekeypress(e,keyName,dueDateObject)}
onChange={this.onChangeEditDueDate}
值={this.state.editDueDateText}
defaultValue={dueDateObject.dueDate}
type=“text”
占位符=“到5月28日,我将有”/>
this.editDueDate(e,keyName,dueDateObject)}>Submit
我通过以下方法解决了这个问题:
删除此代码段:value={this.state.editDueDateText},并在下面的函数中使用一些条件语句进行调整
editDueDate = (e, keyName, dueDateObject) => {
dueDateObject.showEditDate = false;
if (this.state.editDueDateText) {
this.props.editDueDate({ keyName, dueDateObject, editText: this.state.editDueDateText })
this.setState({
editDueDateText: ''
})
} else {
this.props.editDueDate({ keyName, dueDateObject, editText: dueDateObject.dueDate })
this.setState({
editDueDateText:''
})
}
我不明白你想要的结果。。您正在将一个空字符串作为值传递给输入,并且希望它不接受此值?我希望的结果是:我希望输入显示默认值,即dueDateObject.dueDate。然后我希望能够提交带有默认值的输入并保存它。--------------------------------------一个问题是:现在当我保存默认值时,它有时会将其保存为空字符串。
dueDateObject
来自哪里?它是我从上面的代码传递下来的对象,但问题是如果我去掉代码“value={this.state.editdudedatetext}”,然后所有这些都可以工作,但问题是,当我提交输入时,它不是保存默认值,而是一个空字符串
onChangeEditDueDate = (event) => {
this.setState({
editDueDateText: event.target.value
})
}
editDueDate = (e, keyName, dueDateObject) => {
dueDateObject.showEditDate = false;
this.props.editDueDate({ keyName, dueDateObject, editText: this.state.editDueDateText })
}
<input className="form-control"
onKeyDown={(e) => this.editDueDatekeypress(e, keyName, dueDateObject)}
onChange={this.onChangeEditDueDate}
value={this.state.editDueDateText}
defaultValue={dueDateObject.dueDate}
type="text"
placeholder="By 28th May, I will have" />
<div className="input-group-append">
<button className="btn btn-outline-primary"
type="button"
onClick={(e) => this.editDueDate(e, keyName, dueDateObject)}>Submit</button>
</div>
editDueDate = (e, keyName, dueDateObject) => {
dueDateObject.showEditDate = false;
if (this.state.editDueDateText) {
this.props.editDueDate({ keyName, dueDateObject, editText: this.state.editDueDateText })
this.setState({
editDueDateText: ''
})
} else {
this.props.editDueDate({ keyName, dueDateObject, editText: dueDateObject.dueDate })
this.setState({
editDueDateText:''
})
}