我有一个todo应用程序,如果你点击搜索,API将从DB返回todo,并在UI的表中显示它们。"编辑"按钮也会显示在每个待办事项上。当您单击编辑按钮时,会弹出一个模式,其中输入字段预先填充了来自数据库的信息,如下所示
我还不能嵌入图片,所以你必须点击这里才能看到
在这种情况下,我似乎不知道如何处理输入字段的变化。我知道如何处理'创建待办事项'页面上的输入字段更改,因为我将每个输入字段的状态设置为空字符串,然后由句柄更改函数写入,如:
this.setState({
[event.target.name]: event.target.value,
});
}
这显然适用于创建待办事项,因为每个输入字段的值都是一个空字符串,直到我在输入字段中输入一些东西。
但是,对于预填充的输入字段,我不知道该将值设置为什么。如果我将其设置为props.searchResults.todoName(仅作为示例),我就不能更改输入字段中的内容。UI不允许我删除或输入任何东西。因此,我将搜索结果值设置为每个输入字段的'defaultValue ',这样至少可以预填充字段,我仍然可以输入新的内容。我只是不知道如何保存/更新我输入的值。请帮助一个新手!
在您的表单上,您只需添加默认值:defaultValue={this.state.todoName}
还确保name={this.state.todoName}
匹配状态值。这将预先填充您的输入与您现有的值,并且无论何时在输入中有一个变化,它将相应地更新它。