过去,我们曾明确警告过调用setState({myProperty})是异步的,并且this.state.myProperty直到回调或下一个render()方法才有效。
使用useState,如何在显式更新状态后获取状态的值?
钩子如何工作?据我所知,setter函数useState不接受回调,例如
const [value, setValue] = useState(0);
setValue(42, () => console.log('hi callback');
Run Code Online (Sandbox Code Playgroud)
不会导致回调运行。
在旧世界中,我的另一种解决方法是(e.g. this.otherProperty = 42)在类上挂一个实例变量,但这在这里不起作用,因为没有函数实例可以重用(this在严格模式下不可以)。
这是一个激励示例:我正在开发一些代码并想弄清楚出了什么问题,所以我有
function foo() {
console.log("Look its 2016 and I'm still printf debugging");
}
Run Code Online (Sandbox Code Playgroud)
除了……我们的构建过程将 esLint 作为构建系统的一部分运行,并且如果 esLint 失败,设计上甚至会阻止运行其余的构建管道。 error Unexpected console statement no-console
我实际上想要的是设置一个dev环境,在其中关闭某些规则(或转换为警告),然后设置一个production打开严格规则的环境。而且我希望能够轻松地在本地切换它,以便我可以在将代码提交到 CI 服务器之前验证我的代码是否有效。
我找不到任何相关的代码片段来实现这一点,这让我很伤心。我的构建环境只是npm脚本(仅使用 esLint CLI + package.json),但我很乐意从另一个构建环境移植解决方案。
现在,我只能// eslint-disable-line在本地修改.eslintrc文件并祈祷我不会意外地将其签入。一定会有更好的办法。
如何解析url字符串以像哈希一样
{:controller => 'controller_name', :action => 'action_name', :id => 'id'}
Run Code Online (Sandbox Code Playgroud)
?
有没有办法在所有浏览器中手动设置浏览器窗口的最小大小?
让我有一个包含内容的文件 index.js
var a = 1;
Run Code Online (Sandbox Code Playgroud)
我有 index.html 文件,其中包含使用<script>标签的index.js 。当我在浏览器中打开 index.html 页面时,a可以直接在浏览器控制台中访问该变量。因为a具有全局作用域并且它是全局变量。
现在我正在使用 npm 和 webpack。我的 package.json 文件内容是
"scripts": {
"build": "webpack"
},
Run Code Online (Sandbox Code Playgroud)
和 webpack.config.js 文件内容是
module.exports = {
entry: './index.js',
output: {
path: path.resolve(__dirname, 'dist'),
filename: 'bundle.js'
},
}
Run Code Online (Sandbox Code Playgroud)
现在我运行 npm build 然后在名为 bundle.js 的 dist 文件夹中创建新文件。
现在我script用 dist/bundle.js从index.html 文件的标签中替换 index.js 。
现在我在浏览器中运行 index.html,但变量a不再直接在浏览器控制台中访问。它现在不是全局变量。
我的问题是:有没有一种方法可以a像我们最初访问一样全局访问变量?
我还没有在互联网上找到确切的答案。我找到了一个 loader暴露加载器,但它也不能解决我的问题。
运行cpplint时,我遇到了一些我想完全禁用的警告.特别是版权信息和空白:
range.h:0:未找到版权信息.你应该有一条线:
"版权所有[年]"[法律/版权] [5]
range.h:10:代码和注释之间至少有两个空格
[空白/评论] [2]
我该如何做到这一点?理想情况下,修改CPPLINT.cfg文件,但我会采用内联注释或命令行标志.我找不到任何关于禁用规则的文档.
给定一个浮点数,比方说(2.0),我想将它转换为Integer类型.就我所知,Integer.parse看起来只适用于字符串.
Integer.parse(2.0)
(FunctionClauseError) no function clause matching in Integer.count_digits/2
Run Code Online (Sandbox Code Playgroud) 我希望能够在管道中提取元组的第N项,而不使用with或以其他方式分解管道.Enum.at除了元组不是枚举这一事实外,它会完美地工作.
这是一个激励人心的例子:
colors = %{red: 1, green: 2, blue: 3}
data = [:red, :red, :blue]
data
|> Enum.map(&Map.fetch(colors, &1))
|> Enum.unzip
Run Code Online (Sandbox Code Playgroud)
这回来了{[:ok, :ok, :ok], [1, 1, 3]},假设我只想提取[1, 1, 3]
(对于这种特殊情况,我可以使用,fetch!但对于我不存在的实际代码.)
我可以补充一下
|> Tuple.to_list
|> Enum.at(1)
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法来做到这一点,不需要从每个元组创建一个临时列表?
因此,在ES2015中,您可以:
// Module A
export const FOO = 0;
export const BAR = 1;
// Module B
import * as AExports from 'ModuleA';
console.log(AExports.FOO); // Prints 0
Run Code Online (Sandbox Code Playgroud)
在运行时枚举ModuleA的官方方法是什么?
import * as AExports from 'ModuleA';
// Are these values guaranteed to be something?
Object.keys(AExports); // If so, should I look at enumerable values?
[...AExports]; // Iterable values?
Object.getOwnPropertyNames(AExports); // Here?
Run Code Online (Sandbox Code Playgroud)
据我所知,规范将其描述为ImportedBinding但我无法从中推断出更多内容.
NameSpaceImport : * as ImportedBinding
Let localName be the StringValue of ImportedBinding.
Let entry be the Record {[[ModuleRequest]]: …Run Code Online (Sandbox Code Playgroud) JSFiddle:http://jsfiddle.net/p7ph5vfj/
我的问题是:有人可以建议解决这个特定于Chrome的错误吗?我的问题不是字母X突出显示,而是它失去了.foo类,所以我再也找不到它了.如果背景颜色消失,我会很好地保持.foo类保持不变.我甚至不知道如何调试这个,因为当发生这种情况时,DOM断点不会触发.
<div contenteditable="true">
DO NOT REPLACE. <span class="foo">END a b c</span> d START la la
</div>
Run Code Online (Sandbox Code Playgroud)
CSS看起来像这样:
.foo {
background-color: #ff0000;
}
Run Code Online (Sandbox Code Playgroud)
触发chrome上的错误的步骤是:
拿起鼠标,将光标放在单词START旁边
单击并按住以选择文本,转到左侧并在单词END处完成选择.
选择应完全涵盖以下文本:"END abcd START".同样,选择必须是从右到左.
在键盘上键入一个新字符,例如'X'
如果X以红色突出显示,则表示您已触发该错误.
这个bug特别是HTML现在看起来像这样:
<div contenteditable="true">
DO NOT REPLACE. <span style="background-color: rgb(255, 0, 0);">X</span> la la
</div>
Run Code Online (Sandbox Code Playgroud)
.foo课程在哪里,这种背景颜色风格来自哪里?在发生这种情况时,不会将div断点添加到div或span中.