React(redux)中的重置输入字段[关闭]

Posted

技术标签:

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

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

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

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

减速机:

【问题讨论】:

不要发布代码的屏幕截图。所有代码示例都应包含在您的问题中作为文本。图片不可搜索,其他人无法复制内容并运行您的代码或在他们的答案中编辑您的代码。 【参考方案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(''); ;现在它就像一个魅力,非常感谢!

以上是关于React(redux)中的重置输入字段[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

将文本字段输入值(如果输入)作为可选参数传递给 react-redux-typescript 应用程序中的 GET api 调用

react-redux,使用一个操作从两个输入字段中更改对象键/值

在 React 中路由其他组件时重置 redux 存储

如何以 redux 形式重置初始值

如何重置 react-redux 的值?

React Redux 添加额外的操作字段导致承诺返回不同