react的this.setState中的坑

react的this.setState中的有两个。

1、this.setState异步的,不能用同步的思维讨论问题

2、在进行组件通讯的回调的时候,this指向子组件,没有指向父亲这,怎么办呢。在

class gradingView extends React.Component {
  constructor(...args) {
    super(...args);
    this.state = {
      suffixIcon: <Icon type="up" />,
      popDivShow:false,
      popImage:jdSelectUp
    };
    window.that=this;
  }

在这里面将that

还有一种方案。

在回调函数中写

  onSelectedItem=(item)=>{
    var that=this;
    that.setState({currentItem:item},function(){
      that.fetchData(0);
    });
  }

为什么这样写呢,因为这里是es6的开发环境,与编译器有关。

原文地址:https://www.cnblogs.com/sexintercourse/p/12001067.html

时间: 2024-11-07 09:49:43

react的this.setState中的坑的相关文章

解决react不能往setState中传key作为参数的办法

有时候我们需要每次单独设置众多state中的一个,但是,都是进行相同的操作,这时候如果每个值都要单独写一个相同的函数的话,违背了don't repeat yourself的原则,并给日后的维护埋下了极大的隐患. 这时我们就会想向上抽取,把每次不同的key传递给这个函数,就像下面这样: this.state = { visibleA: false, visibleB: false, visibleC: false, } <button onClick = {this.handleClick.bin

从 0 到 1 实现 React 系列 —— 4.setState优化和ref的实现

看源码一个痛处是会陷进理不顺主干的困局中,本系列文章在实现一个 (x)react 的同时理顺 React 框架的主干内容(JSX/虚拟DOM/组件/生命周期/diff算法/setState/ref/...) 从 0 到 1 实现 React 系列 -- JSX 和 Virtual DOM 从 0 到 1 实现 React 系列 -- 组件和 state|props 从 0 到 1 实现 React 系列 -- 生命周期和 diff 算法 从 0 到 1 实现 React 系列 -- 优化 set

Windows API中的坑

本文主页链接:Windows API中的坑 ExpandEnvironmentStrings 风险: 进程会继承其父进程的环境变量,在展开如%APPDATA%等目录时,有可能父进程对此环境变量进行过修改,那么可能你获取的就不是你想要的当前SESSION的%APPDATA%了. 建议: 使用SHGetFolderPath系列函数来做这件事. GetModuleFileName 风险: 在DLL中调用时,若传入的instance参数为NULL,那获取的将是加载DLL的进程的EXE的路径,若需要获取D

Torch-RNN运行过程中的坑 [2](Lua的string sub函数,读取中文失败,乱码?)

0.踩坑背景 仍然是torch-rnn/LanguageModel.lua文件中的一些问题,仍然是这个狗血的LM:encode_string函数: function LM:encode_string(s) local encoded = torch.LongTensor(#s) for i = 1, #s do local token = s:sub(i, i) local idx = self.token_to_idx[token] assert(idx ~= nil, 'Got invali

Torch-RNN运行过程中的坑 [1](读取Lua非空table,size为0)

0.踩坑背景 执行Torch-RNN的时候,在LanguageModel.lua中的encode_string函数中,对start_text的各个character进行id映射编码,实现功能类似"北京天安门"-->"5 10 88 32 111",方便后面的计算. 这个函数会利用一个全局的类似HashMap的table,hashmap中的key是character(char),value是id(int),涉及到一个从hashmap中按照key取值的操作,代码如

MVC 4中的坑

1.VirtualPathUtility.ToAbsolute 这个方法的官方解释是 Converts a virtual path to an application absolute path. 意思是应用程序虚拟路径转换为绝对路径 但实际是取不到绝对路径的 VirtualPathUtility.ToAbsolute("~/App_Data/"); 这个取到的实际是 C:/App_Data 这个目录 需要取绝对路径还是需要 System.Web.HttpContext.Curren

在 React、Vue项目中使用 SVG

在一些现代的扁平化设计网站,特别是移动端网站,经常会包含许多简单而清晰的小图标,例如网站图标.用户的默认头像.移动端网页首页底部固定的切换栏等,这些小图标一般都是由美工做好,可能会放到精灵图上,前端再进行裁切展示. 而实际上,这些简单的小图标完全没必要让美工来做,前端完全可以通过 svg使用代码把这些简单的图标画出来,并且,因为这些图标是用代码描述出来的,所以如果想要修改这些图标,例如改变图标的颜色.图标的形状.大小等,都只是改几行代码的事情,非常简单,根本无需美工返工重做. 本文不是阐述如何利

memset()函数中的坑

一 写在开头1.1 本节内容内存填充函数memset()中的坑. 二 函数原型 1 /* 来自man memset */ 2 #include <string.h> 3 void * memset(void * s, int c, size_t n); 功能描述:memset()函数用常量c的值填充由指针s所指向的内存地址空间的前n个字节的内存空间. DESCRIPTION : The memset() function fills the first n bytes of the memor

谈谈React Native环境安装中我遇到的坑

谈谈React Native环境安装 这个坑把我困了好久,真的是接近崩溃的边缘...整理出来分享给大家,希望遇到跟我一样问题的小伙伴能尽快找到答案. 首先,这是在初始化App之后,react-native run-android指令  报错如下: 这个问题困扰了好久,查阅了很多资料,使用各种解决办法,有的资料解决办法如下: 跟随着改变之后,再react-nativerun-android,运行结果如下: 以上的方法依然未能解决,反而报了其他的错误,然后我把文件中更改的地方复原. 下面是第二种方法