小编Nic*_*amp的帖子

在 useEffect 挂钩中使用对象属性而不是对象作为依赖项是不好的做法吗?

我在我的功能组件中使用以下代码。我希望该组件仅在更改时重新渲染game._id。但 React 不断向我发出警告:

React Hook useEffect 缺少依赖项:“游戏”。包含它或删除依赖项数组

这是一种危险的做法,还是如果我明确希望它依赖于给定的属性,这是合理的?

  const [game, setGame] = useState({});

  useEffect(() => {
    return () => {
      if (game._id !== undefined) {
       // Do stuff with game
      }
    };
  }, [socket, user, game._id]);
Run Code Online (Sandbox Code Playgroud)

我不想使用游戏作为依赖项,因为这会使我的组件重新渲染太多。

reactjs react-hooks use-effect

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

Postgresql 连接与 gorm 拨号错误无法分配请求的地址

我正在尝试将新的 gorm v2 实现与 Postgresql 结合使用(我将 Docker 用于 Golang 应用程序和 Postgres)。我尝试按照gorm 文档中所示进行操作。

这给了我以下错误:

网络_1 | 2020/09/19 19:25:57 /go/src/caiqueservice/main.go:36 无法连接到host=/tmp user=admin database=caique:拨号错误(拨号 unix /tmp/.s.PGSQL.5432:连接:没有这样的文件或目录)

因此,由于文档没有指定host,但错误消息将其设置为/tmp我设置了该值。

dsn := fmt.Sprintf("host=%v user=%v password=%v dbname=%v port=%v sslmode=disable",
    os.Getenv("DB_HOST"),
    os.Getenv("DB_USERNAME"),
    os.Getenv("DB_PASSWORD"),
    os.Getenv("DB_DATABASE"),
    os.Getenv("DB_PORT"),
)
db, err := gorm.Open(postgres.Open(dsn), &gorm.Config{})
Run Code Online (Sandbox Code Playgroud)

.env

DB_HOST=localhost
DB_PORT=5432
DB_DATABASE=caique
DB_USERNAME=admin
DB_PASSWORD=password
Run Code Online (Sandbox Code Playgroud)

这样做会给出以下错误消息:

网络_1 | 2020/09/19 19:36:47 /go/src/caiqueservice/main.go:36 无法连接到host=localhost user=admin database=caique:拨号错误(拨号 tcp [::1]:5432:连接:无法分配请求的地址)

pgadmin 可以访问 postgres 数据库。我不知道下一步该怎么做,非常感谢您的帮助。

postgresql go go-gorm

3
推荐指数
1
解决办法
4730
查看次数

标签 统计

go ×1

go-gorm ×1

postgresql ×1

react-hooks ×1

reactjs ×1

use-effect ×1