小编Eug*_*aev的帖子

为什么异步函数中的 React hook 值没有更新?

运行run函数时,我希望value变量具有值“new”,但即使 500 毫秒,它仍然保持“old”。为什么会发生这种情况以及如何解决这个问题?

import React, { Component, useState } from "react";
import { render } from "react-dom";

function App() {
  const [value, setValue] = useState('old');

  const run = async() => {
    setValue('new')
    const data = await wait(500)
    console.log(value)
  }

  return (
    <button onClick={run}>
      Run
    </button>
  );
}

render(<App />, document.getElementById("root"));

function wait(ms) {
  return new Promise(resolve => setTimeout(resolve, ms))
}
Run Code Online (Sandbox Code Playgroud)

javascript reactjs react-hooks

5
推荐指数
1
解决办法
4386
查看次数

如何在TypeScript中覆盖类型属性

例如,我有

type Line = {
  start: Point;
  end: Point;
  color: string; //'cyan'/'aquablue'/...
}
Run Code Online (Sandbox Code Playgroud)

但是现在我想在Line的基础上创建新的线型,以便将颜色存储为数字:

type HexColorLine = Point & {
  color: number;
}
Run Code Online (Sandbox Code Playgroud)

现在我希望HexColorPoint类型等于

{
  start: Point;
  end: Point;
  color: number;
}
Run Code Online (Sandbox Code Playgroud)

但这等于

{
  start: Point;
  end: Point;
  color: string | number;
}
Run Code Online (Sandbox Code Playgroud)

有没有一种方法可以使用一些简短的语法覆盖但不扩展prop类型?我真的需要为此定义全新的类型吗?

typescript

4
推荐指数
5
解决办法
2675
查看次数

这是官方文档中的拼写错误吗?

我在官方文档中看过https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Comparison_Operators:

空和未定义类型严格等于它们自己并且抽象地彼此相等.

但我已经在浏览器的控制台中检查了它.所以:

undefined == null --> true 
Run Code Online (Sandbox Code Playgroud)

undefined === null --> false //WTF?
Run Code Online (Sandbox Code Playgroud)

这是文档中的拼写错误???

javascript

-1
推荐指数
1
解决办法
69
查看次数

标签 统计

javascript ×2

react-hooks ×1

reactjs ×1

typescript ×1