javascript - 在没有箭头函数的回调中反应访问 setState
问题描述
我正在为公司 Intranet 开发代码。使用箭头函数构建基础后,我在 Internet Exploder 中进行了测试。发现它不接受箭头函数。我在这个项目中使用 React,并且已经重构了所有代码以使用经典函数调用。
除了一个小故障外,它大部分都有效:我无法从函数调用内部访问它。
这是一个代码示例,尽管还有其他示例:
<NavLink onClick={function () {
this.setState({ openCount: item.pageId });
this.props.CurrentPage_Update(item)
}
}
className="menu menu-link"
key={"DDNavLink_" + item.pageId}>
{item.title}
</NavLink>
如何访问所有函数调用的“this”对象?我尝试按顺序创建一个变量,var set=this.setState;
但失败了,尽管它确实适用于绑定函数。
尽管我已经阅读了有关 babel 的信息,但我不确定该去哪里,但对它的使用和功能完全不可知,尤其是对于这样一个看似简单的重构。
谢谢
解决方案
在每个函数调用结束时,我使用 .bind(this) 使函数能够使用外部 this 而不是内部。
//blah blah blah
}.bind(this)
我发现如果函数中有任何对 this 的调用,我必须在每个右大括号的末尾执行此操作。无论是否有必要,我都计划让它成为每个经典函数调用的习惯。
推荐阅读
- python - 在特定点切片 DataFrame 并绘制每个切片
- db2 - 是否可以将 DB2 z/OS 和 DB2 LUW 与 DB2 z/OS 作为请求者一起加入?
- javascript - 如何在python中检查输入类型文件之一是否为空
- ethernet - 如何在 u-boot 中通过 i2c 写入寄存器
- python - 使用 pandas groupby 根据时间间隔获取频率计数
- java - 如何处理 REST 服务中的错误请求
- reactjs - 使用 react-query 运行许多查询
- static - 如何将 Powermock.mockStatic 迁移到 Mockito.mockStatic?
- uisearchbar - tvOS 14 无法减小搜索栏字体大小
- xml - XML " 预计在第 50 行 char 35 处?