草庐IT

import-hooks

全部标签

javascript - 如何使用 React hooks 处理/链接依赖于另一个的同步副作用

我正在尝试将我的应用程序从redux重写为新的上下文+Hook,但不幸​​的是,我很难找到一种好方法来处理一系列依赖于前一个响应的同步副作用。在我当前的redux应用程序中,我大量使用同步/链接操作和API请求,我通常通过redux-saga或thunk处理这些请求。因此,当返回第一个API请求的响应时,该数据将用于下一个API请求等。我做了一个自定义钩子(Hook)“useFetch”(在这个例子中它没有做太多,因为它是一个简化的版本,我还必须做一个小的调整才能在codesandbox上工作-请参见下面的代码)。问题在于,由于“钩子(Hook)规则”,我不能在useEffect钩子(

javascript - React Hooks useEffect,添加依赖触发死循环

在我的useEffect中,我有一个Prop依赖项(setIsValid)。当我将此依赖项添加到useEffect时,它会陷入无限循环。调用子组件时为父级:constsetIsValid=(bool)=>{consttmpStateCopy=Object.assign({},state);tmpStateCopy.isValid=bool;setState(tmpStateCopy);};return在子组件中:const{setIsValid}=props;const[state,setState]=useState({transformations:[],duplicateInde

javascript - react Hook : accessing up-to-date state from within a callback

编辑(2020年6月22日):由于这个问题引起了一些新的兴趣,我意识到可能存在一些困惑。所以我想强调:问题中的例子只是一个玩具例子。它不能反射(reflect)问题。引发这个问题的问题是使用第三方库(对其控制有限),该库将回调作为函数的参数。为该回调提供最新状态的正确方法是什么。在React类中,这将通过使用this来完成。在Reacthooks中,由于状态被封装在React.useState()函数中的方式,如果回调获取状态通过React.useState(),它将是陈旧的(设置回调时的值)。但如果它设置状态,它将可以通过传递的参数访问最新状态。这意味着我们可以通过将状态设置为与原来

递归 Hook 时 Javascript 丢失上下文

我开始研究JS的动态分析工具,我想不引人注意地分析整个环境。我基本上是在遍历各种上下文,深入研究对象,每次我遇到一个函数时,我都会Hook它。现在,除了在处理jQuery/prototype等库时它会中断之外,它工作得相对较好。这是我到目前为止的代码(尽我所能评论):var__PROFILER_global_props=newArray();//visitedproperties/***Hookintoafunction*@namethenameofthefunction*@fnthereferencetothefunction*@parenttheparentobject*/func

Javascript Firefox - 如果样式表中存在 @import,则无法查询 cssRules - 错误或预期行为?

如果@import出现在css样式表中,我将无法查询cssRules。是否符合网络标准?或者它知道Firefox的限制?注意:我正在从同一域导入css文件。varstyle_rules=document.styleSheets[0].cssRules;console.log(style_rules);底层对象不支持参数或操作[BreakOnThisError]varstyle_rules=document.styleSheets[0].cssRules; 最佳答案 属性document.styleSheets[0].cssRules

javascript - 带有 Webpack 的 VueJS : imports and exports not working as expected

我启动了一个新的Vuetify/Webpack项目,并尝试通过vueinitvuetify/webpack设置项目后实现vue-router。我根据thistutorial中的说明设置路由器.经过一些摆弄后,我通过更改导入Vue组件的方式使其正常工作。在我的router/index.js文件中://worksformeimportMainfrom'../components/Main.vue'//doesNOTwork;fromthetutorialimportMainfrom'@/components/Main'我的问题是,为什么我必须相对导入我的Main.vue文件并在导入时包含.

javascript - 通过 ES6 import 导入远程文件

我有一个正在通过browserify编译和捆绑的ES6React应用。我有几个导入语句,例如:importReactfrom'react/addons'我还需要使用一个外部库来创建一个托管在CDN上的HTML小部件。我试过在包源之前或之后包含文件:当我尝试在控制台中引用CDN提供的对象时,它工作正常:Auth0Lock在React应用程序中引用它会引发语法错误。我假设我需要导入它...但是如何呢? 最佳答案 你可以通过npm安装auth0-lock,并作为本地依赖使用npminstallauth0-lock--save然后像这样将其

javascript - "import * as"是否比特定的命名导入效率低?

这个问题在这里已经有了答案:IsusinganES6importtoloadspecificnamesfasterthanimportinganamespace?(2个答案)关闭4年前。假设我有一个像这样的模块foo:exportconstf=x=>x+1;exportconstg=x=>x*2;我可以像这样使用这个模块:import{f,g}from'foo';console.log(f(g(2)));或者像这样:import*asfoofrom'foo';console.log(foo.f(foo.g(2)));我更喜欢第二种方式,因为它可以防止模块之间的名称冲突。但是,impor

javascript - Karma 未运行在 karma-webpack 中具有 "import"语句的测试

我有一些测试文件,其中包含我想针对我的应用运行的测试。我正在尝试使用karma、karma-webpack、karma-babel-preprocessor、karma-chrome-launcher和jasmine在我的测试中。我的应用程序依赖于很多东西,包括backbone、marionette等。我的应用程序是使用webpack构建的,我正在尝试使用>webpack将我的文件捆绑在一起进行测试。(我最初想看看我是否可以跳过这一步,即简单地import一个要测试的文件,但似乎这是不可能的。)我的测试脚本看起来像package.json(脚本部分)"test":"./node_mod

javascript - domain.dispose() 在 nodejs 中到底做了什么?有钩子(Hook)吗?

在http://nodejs.org/api/domain.html阅读文档让它有点含糊:“尽最大努力清理与域关联的所有IO”。它提到计时器已关闭,这不完全是IO。如果知道domain.dispose所做的事情的完整列表,那将是非常好的。有人有那个list吗?此外,是否有任何方法可以连接到该功能-即允许在运行domain.dispose()时调用一些自定义清理代码? 最佳答案 dispose函数调用exit和dispose函数,删除所有监听器,删除所有错误处理程序,并尝试杀死域的所有成员。该函数检查域是否有父域,如果有,则将其从域中