【问题标题】:Reset input field in React (redux) [closed]React(redux)中的重置输入字段[关闭]
【发布时间】:2021-12-05 16:49:46
【问题描述】:

我正在使用 redux 制作一个基本的 Todo 应用程序,这是我第一次使用这些 redux 方法。添加待办事项时出现问题,输入字段未重置,我尝试了各种方法,但似乎都不起作用。

例如:defaultValue、handleText on click 带回空字符串等

堆栈上有类似的问题,但与我的方法无关。这是我的代码。

减速机:

【问题讨论】:

  • 不要发布代码的屏幕截图。所有代码示例都应包含在您的问题中作为文本。图片不可搜索,其他人无法复制内容并运行您的代码或在他们的答案中编辑您的代码。

标签: javascript html reactjs redux


【解决方案1】:

为了重置输入字段的值,你只需要将todos的状态值设置为一个空字符串,你可以调用:

setTodos('');

如果您想在点击后执行此操作,您可以在 handleClick 函数中调用 setTodosdispatch 之后:

const handleClick = () => {
  dispatch({ ... });
  setTodos('');
};

此外,您可能希望将 todos 初始化为空字符串而不是数组,因为它用作文本输入的值:

const [todos, setTodos] = useState('');

【讨论】:

  • 我使用这个方法后弹出这个错误:TypeError: dispatch(...).then is not a function
  • 我已经更新了代码 sn-p 因为 dispatch 不返回承诺。
  • ./src/components/todo.js 语法错误:/Users/faruksuljagic/Desktop/redux-app/src/components/todo.js:标识符“handleClick”已经被声明。 (36:10) >>>> const handleClick = () => { dispatch({ type: "ADD_TODO", payload: { label: todos, id: Math.ceil(Math.random() * 100) }); setTodos(''); };
  • 这是我的错误,我稍微修正了你的代码 const handleClick = () => { dispatch({ type: "ADD_TODO", payload: { label: todos, id: Math. ceil(Math.random() * 100) },}); setTodo(''); };现在它就像一个魅力,非常感谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-29
  • 1970-01-01
  • 2020-10-06
  • 2019-05-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多