小编MrK*_*Key的帖子

在 TypeScript 中定义空对象类型

我正在寻找定义不能容纳任何值的空对象类型的方法。

type EmptyObject = {}

const MyObject: EmptyObject = {
  thisShouldNotWork: {},
};
Run Code Online (Sandbox Code Playgroud)

具有该类型的对象可以自由添加任何属性。我怎样才能强制MyObject始终是一个空对象呢?

我的实际用例是在接口内使用 EmptyObject 类型。

interface SchemaWithEmptyObject {
  emptyObj: EmptyObject; 
}
Run Code Online (Sandbox Code Playgroud)

types typescript typescript-typings

13
推荐指数
3
解决办法
5351
查看次数

将所选文本向左或向右移动

目前是否有任何命令将所选文本向左或向右移动?我不是在谈论缩进btw.

visual-studio-code vscode-settings

7
推荐指数
4
解决办法
1万
查看次数

有条件地包装 React 组件而不丢失子组件状态

我想知道是否可以有条件地包装 React 组件而不丢失子组件的状态。

在沙箱中,您可以看到,当单击几次“增量”按钮,然后执行“包裹子项”或“展开子项”操作时,计数器会重置。

https://codesandbox.io/s/fervent-herschel-f62e2?file=/src/App.js

相关代码可以看这里:

const ConditionalWrap = ({ condition, children }) => {
  return (
    <Fragment>
      {condition ? (
        <div>{children}</div>
      ) : (
        children
      )}
    </Fragment>
  );
};
Run Code Online (Sandbox Code Playgroud)
  1. 谁能向我指出为什么会发生这种情况的资源?我想父树需要保持不变,我只是想知道为什么。

  2. children当有条件地将它们包装在元素或上下文提供程序中时,是否有某种方法可以保持所有状态?

reactjs react-hooks

7
推荐指数
1
解决办法
2740
查看次数

如何提前退出useEffect hook?

文档中,它说我们应该只在组件的顶层调用钩子.由于useEffect的API,return已经为清理保留,这让我想知道如何提前退出useEffect挂钩以防止深度嵌套我的if语句.

// instead of
React.useEffect(() => {
  if (foo){
    // do something
  }
})

// I would rather write something like
React.useEffect(() => {
  if (!foo){
    // exit early and stop executing the rest of the useEffect hook
  }

  // do something
})
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?在我的第一个例子中,事情可能很快就会因复杂的条件逻辑而变得混乱,特别是考虑到我不能useEffect在条件语句中使用.

reactjs react-hooks

2
推荐指数
2
解决办法
1807
查看次数