当前位置: 首页 > 知识库问答 >
问题:

反应美国房地产总是落后1步[重复]

师增
2023-03-14

我还没反应过来。我已经学了几个月了。我目前正在使用ant-design创建标记,并试图在单击时删除它们。我有一个用户的状态,根据他们想要删除或创建标记,用户状态会更新。但是,当I删除标记时,users状态不会立即更新,并在removeuser()中的Iconsole.log(users);返回空数组。我看过以前类似的问题,但是它们使用useeffect(),但这不适合我的用例。我还尝试将这个 放在代码的返回部分,这在某种程度上解决了问题,但是,每当我从用户表中选中一个复选框时,标记的颜色就会重新呈现。删除标记时,调用removeuser()函数,其中解析用户ID,以便从状态中删除用户。但是,由于状态没有更新,所以不会删除它,因为它是空的,所以[...users].map()不会映射任何内容。我如何解决这个问题?



   
   
const [users, setUsers] = useState([]);

const createUserTags = () => {
  const oldUsers = [...users];
  let updatedUsers = selectedRowKeys.map(userId => ( 
  <Tag onClose = {() => removeUser(userId)}
    closable key = {userId}> 
    {[...dataSource].map(user => {
    return user.Id === userId && "{user.firstName}" + " "+"{user.surname}";
      })
    } 
  </Tag>
  ));
  updatedUsers.unshift(oldUsers);
  setUsers([...updatedUsers]);
};

  const removeUser = userId => {
   
        // remove user from array list
       
   };


return (
  <>
    <Button 
      shape = "round"
      onClick = {() => createUserTagsHandler()}
      type = "primary"> Create Tag 
    </Button> 
</>
  </>
)
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.6.3/umd/react.production.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.6.3/umd/react-dom.production.min.js"></script>

共1个答案

匿名用户

当您console.log它时,状态似乎落后了一步,因为setState()是异步的,但是,与前面的情况一样,它仍然可以正确地更新。如果它提交到表单,您将看到它发送正确的更新状态

相关问题


  • 找不到“http://java.sun.com/jsp/jstl/core”的标记库描述符 [重复]
  • Git 错误:无法与 XX.XX.XXX.XXX 协商:未找到匹配的主机密钥类型。他们的报价: SSH-DSS [重复]
  • 无法克隆 git 存储库 [重复]
  • 无法更正突然的"服务器证书验证失败"[重复]
  • SMTP重复发送消息-需要身份验证
  • 如何在MongoDB中引用其他数据库中的实体?[重复]
  • 2023-03-23 - GitHub问题:远程主机标识已更改[重复]
  • VSCode 中的错误,当我尝试创建一个 Spotify 不和谐机器人时:[ 语法错误:无法在模块外部使用导入语句 ] 与节点.js [重复]
  • 在node js中导入时加载“ES模块”的问题[重复]
  • 在 Node.js 中导入:错误“必须使用导入来加载 ES 模块”[重复]
  • 将javascript作为节点为[重复]的模块运行
  • 如何替换此代码中的“require()”?[重复]
  • 为什么导入 { 事物 } 有效,但导入事物无效?[重复]
  • 在 React JS 中导入 [重复]
  • React Components的导入语句在ES6中的工作原理[重复]
  • import React和import { Component }语法之间的差异[重复]
  • 继承注释-线程“main”org.hubinate.MappingException中的异常:实体的映射中重复列
  • 从fs.readFile中获取数据[重复]
  • 这些错误消息是什么意思?(爪哇秋千)[重复]
  • 数组$ArrayList不能强制转换为java中的java.util.ArrayList[重复]

共有3个答案

商振
2023-03-14
热门标签
冯招
2023-03-14
相关问题
柯伟志
2023-03-14

当您console.log它时,状态似乎落后了一步,因为setState()是异步的,但是,与前面的情况一样,它仍然可以正确地更新。如果它提交到表单,您将看到它发送正确的更新状态

 类似资料:
  • 我在React中有各种各样的函数,其中我需要使用useState更改状态,然后根据新状态是否满足某些条件执行一些操作。 当使用prop=“newpassword”调用handleChange时,它使用useState中的setValues方法设置newpassword的值。然后使用正则表达式测试对新密码进行评估,如果它有效,则状态变量passwordIsValid应设置为true。 状态总是比th

  • 问题内容: 我在构建webapp时遇到了这个问题,并在jsfiddle中复制了它。本质上,每次输入内容时,我都希望调用一个输入,然后将其传递到父App类中,然后将其重新呈现到Message类中。但是输出似乎总是比我实际输入的内容落后一步。jsfiddle演示应该可以自我解释。我想知道我是否做错了任何提示。 html js 问题答案: 呼叫不同步。它创建一个“待处理状态转换”。(有关更多详细信息,请

  • 我在我的反应容器中有加减法函数,每当点击跨度'或'-'时都会传递这些函数,以便计算给定不同价格值的三种'产品'的总'价格'。 我的问题是:当我第一次点击任一按钮时,它首先记录初始值0,然后随着每次点击,从总数中增加或减少,但总是落后一步。 例如,如果我点击“苹果,价格:2”,我的控制台记录为0。然后,我将单击“pears,price:5”,我的控制台将记录2,将上一次单击的值相加,而不是将5添加到

  • 如何在USESTEAT数组内推元素反应钩?这是一个老方法在反应状态吗?还是新东西? 例如。设置状态推示例?

  • 团子最近陆陆续续出结果啦,看站里有几位大佬已经拿到了offer,羡慕哭了我还在面试阶段分享一下面经攒人品,让我过吧!! 一面 一面问的问题很常规,首先自我介绍 然后抓着简历酷酷问,不过面试官人还挺好的,没有太刁难我 再就是问了专业的一些问题,包括做产品经理和我之前的一段项目经历的联系,然后产品经理的职责之类的 反问环节我问了面试官美团这个岗位的具体职责 #非技术面试记录#

  • 自我介绍 算法,链表的插入排序 问项目中消息队列如何使用的 介绍消息队列的几种模式 了解死信队列吗 多线程的实现方式 线程池的参数 自己如何微调模型(详细) 如何造数据集 如何评估模型的 如何优化模型的,写过prompt没有(说了自己了解的一些方法,prompt和reflexion) =========================================================