You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React中如何获取字段的上一个值 点击编辑时展示用户过往输入

问题原因

你点击编辑按钮时没有将当前任务的原有内容赋值给editingText状态,且受控模式下的TextField设置defaultValue不生效,所以编辑框打开后没有显示原有内容。


具体修改步骤

  1. 修改编辑按钮的点击逻辑
    找到EditIcon的onClick事件,修改为点击时同时给editingText赋值当前任务的原有文本:
<EditIcon onClick={() => {
  setTaskEditing(task.id)
  setEditingText(task.text)
}} />
  1. 清理TextField的冗余属性
    TextField用了value属性就是受控组件,defaultValue不会生效,直接删掉这一行即可:
<TextField
  style={{ width: 410 }}
  required
  variant="outlined"
  onChange={(e) => setEditingText(e.target.value)}
  placeholder='This is a placeholder'
  value={editingText}
/>

可选优化:修改editTask函数避免直接修改原对象

你当前的editTask里直接修改了task对象的属性,属于对原引用对象的修改,建议调整为返回新对象避免潜在的状态更新异常:

function editTask(id) {
  const updatedTasksEdit = tasks.map((task) => {
    if (task.id === id) {
      // 返回新对象不修改原引用
      return {...task, text: editingText};
    }
    return task;
  });
  setTasks(updatedTasksEdit);
  setTaskEditing(null);
  setEditingText("");
}

内容的提问来源于stack exchange,提问作者Lloyd Rajoo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 16:27:02