我想为我的 SQLAlchemy 基类使用类型,但似乎找不到类型定义。
例如:
from sqlalchemy.types import BigInteger
from sqlalchemy.schema import Column, Index
from sqlalchemy.ext.declarative import declarative_base
Base = declarative_base()
class User(Base):
__tablename__ = "users"
id_user = Column(
BigInteger, primary_key=True, autoincrement=True, nullable=False, index=True
)
username = Column(String, unique=True, index=True)
Run Code Online (Sandbox Code Playgroud)
现在,当引用这个 User 类时,我不知道该使用什么类型。此外,如果我想要一个包含 table_name 的字典:模型映射如下:
from typing import Any, Dict
table_model_map: Dict[str, Any] = {
"users": User,
"another_table": AnotherTableModel,
}
Run Code Online (Sandbox Code Playgroud)
我将如何定义这个字典的类型
非常感谢您帮助我理解这一点!
在使用 history.push 加载组件后重定向时 - 我的组件再次呈现。导致componentDidMount()函数运行两次。
这是我的一个组件的简化片段。我希望componentDidMount()只运行一次 - 它可以在没有history.push. 但是当我添加history.push- 它加载两次。(如果我使用Redirectfrom也会发生同样的情况react-router)
import * as React from "react";
import { history } from "../../configureServices";
import { explore } from "../../routes";
export class WelcomeComponent extends React.Component<object, object> {
componentDidMount() {
// tslint:disable-next-line:no-console
console.log("componentDidMount");
history.replace(explore);
}
render() {
return <div />;
}
}
Run Code Online (Sandbox Code Playgroud)
安慰:
componentDidMount
componentDidMount
Run Code Online (Sandbox Code Playgroud)
很想找到一种方法让这个只运行一次。
编辑:谢谢大家的回复。我将发布一个快速代码片段,然后稍后发布一个 Fiddle。
- - 更新:
我正在使用 React-Router。我在 configureServices.ts 文件中构建历史记录(以及一些其他服务)。
// configureServices.ts
import { createBrowserHistory } …Run Code Online (Sandbox Code Playgroud)