我正在创建一个自定义钩子,并想定义一个可选参数,以便我可以在需要时传入额外的依赖项。我的代码如下所示:
import { useEffect } from 'react';
function useCustomHook(param1, extraDeps) {
useEffect(() => {
// do something with param1 here
}, [param1, ...extraDeps])
}
Run Code Online (Sandbox Code Playgroud)
react-hooks/exhaustive-deps 发出警告说
React Hook useEffect 在其依赖数组中有一个 spread 元素。这意味着我们无法静态验证您是否传递了正确的依赖项
任何人都知道如何解决该警告?或者将 deps 数组传递给自定义钩子不是一个好习惯?
对于那些对为什么需要 extraDeps 感兴趣的人。这是一个例子:
const NewComponent = (props) => {
[field1, setField1] = useState()
[field2, setField2] = useState()
// I only want this to be called when field1 change
useCustomHook('.css-selector', [field1]);
return <div>{field1}{field2}</div>;
}
Run Code Online (Sandbox Code Playgroud) 我对Python原始字符串有点困惑.我知道如果我们使用原始字符串,那么它会将'\'视为正常的反斜杠(例如r'\n'将是'\'和'n').但是,我想知道如果我想匹配原始字符串中的新行字符.我试过r'\n',但它不起作用.有人对此有一些好主意吗?
我想学习如何在python函数中传递任意数量的args,所以我以递归的方式编写了一个简单的sum函数,如下所示:
def mySum(*args):
if len(args) == 1:
return args[0]
else:
return args[-1] + mySum(args[:-1])
Run Code Online (Sandbox Code Playgroud)
但是当我测试时mySum(3, 4)
,我收到了这个错误:
TypeError: unsupported operand type(s) for +: 'int' and 'tuple'
Run Code Online (Sandbox Code Playgroud)
有没有人对此有所了解并给我一些线索来纠正它?
我很好奇在添加到主屏幕后浏览器PWA将在引擎盖下使用的内容.是否是您最初选择的"添加到主屏幕"?如果是,如果我在Chrome上将Chrome添加到主屏幕怎么办?手机,然后删除Chrome(假设我的手机上只剩下Safari了)?当点击主屏幕上的图标时,PWA是否仍然有效?
我想知道是否有办法在 GraphQL 中共享 Input 和 Type 之间的公共字段,这样我就不必在多个地方定义相同的字段集。
例子:
input PersonInput {
id: String!
name: String
address: String
}
type Person {
id: String!
name: String
address: String
}
Run Code Online (Sandbox Code Playgroud)
我知道 Fragment 可能是一个解决方案,但如果我的理解是正确的,使用 Fragment 总是需要您设置一个 ON 条件,使其看起来像这样:
Fragment PersonCommonFields on Person {
...
}
Run Code Online (Sandbox Code Playgroud)
似乎没有办法指定“on Person/PersonInput”。
这是我的RubyGems环境:
我想知道"用户安装目录"是什么.为什么它不指向文件夹.rvm下的宝石而是.gem呢?另外,为什么它使用2.2.0这是我没有安装的ruby版本?
我正在为我的项目使用webpack-dev-server v1.14.1,整个项目结构如下:
|----src
| |----index.js
| |----components
| | |----a.js
| |----containers
| |----sub-containers
| |----b.js
|
|----package.json
|----webpack.config.dev.js
Run Code Online (Sandbox Code Playgroud)
但是,当我运行命令"webpack-dev-server --inline"时,服务器只能捕获a.js文件中的更改.它忽略了b.js文件中的更改.有什么想法吗?
python ×2
graphql ×1
graphql-js ×1
javascript ×1
rawstring ×1
react-hooks ×1
reactjs ×1
regex ×1
rubygems ×1
webpack ×1