我正在寻找定义不能容纳任何值的空对象类型的方法。
type EmptyObject = {}
const MyObject: EmptyObject = {
thisShouldNotWork: {},
};
Run Code Online (Sandbox Code Playgroud)
具有该类型的对象可以自由添加任何属性。我怎样才能强制MyObject始终是一个空对象呢?
我的实际用例是在接口内使用 EmptyObject 类型。
interface SchemaWithEmptyObject {
emptyObj: EmptyObject;
}
Run Code Online (Sandbox Code Playgroud) 目前是否有任何命令将所选文本向左或向右移动?我不是在谈论缩进btw.
我想知道是否可以有条件地包装 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)
谁能向我指出为什么会发生这种情况的资源?我想父树需要保持不变,我只是想知道为什么。
children当有条件地将它们包装在元素或上下文提供程序中时,是否有某种方法可以保持所有状态?
在文档中,它说我们应该只在组件的顶层调用钩子.由于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在条件语句中使用.