小编Jas*_*son的帖子

React useEffect 等价于类组件

我有一个 React 功能组件,它执行以下操作:

  • 发送 POST 以从我的 API 加载原始数据
  • (除其他外)将映射数据发送到自定义表组件
  • 允许用户使用不同的过滤器重新发送 POST
import React, { useEffect, useState } from "react";
import axios from "axios";
import mytable from "./mytable";

const baseRawData = [
  { name: "name", value: "John Doe" },
  { name: "sex", value: "M" }
];

export default function FuncComp() {
  let [rawData, setRawData] = useState(baseRawData);
  let [mappedData, setMappedData] = useState([]);
  let [apiFilter, setApiFilter] = useState("all");

  useEffect(() => {
    setMappedData(
      rawData.map(e => ({
        ...e
        // Some logic
      }))
    ); …
Run Code Online (Sandbox Code Playgroud)

reactjs react-hooks

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

TypeORM - 在监听器方法中使用事务(BeforeUpdate)

我有一个使用 TypeORM 的 NodeJS 后端服务器,每次更新实体时我都需要执行插入。所以我的班级中有以下代码BaseModel

abstract class BaseModel {
// ...
  @BeforeUpdate()
  private async InsertBeforeUpdate() {
    let entToSave: BaseModel;
    // Create the entity that I want to insert
    await getManager().save(entToSave);
  }
}
Run Code Online (Sandbox Code Playgroud)

然后,在我的 DAL 中:

const saveUser = (user: User) => {
  return new Promise((resolve, reject) => {
    getManager().transaction(async manager => {
      manager
        .save(user)
        .then(() => {
          resolve('yay');
        })
        .catch(() => {
          reject(new Error('boo'));
        });
    });
  });
};
Run Code Online (Sandbox Code Playgroud)

然而,这带来了一个问题。如果保存操作失败并且 saveUser Promise 被拒绝,则 @BeforeUpdate 中执行的插入在同一事务上不存在,并且将保存到数据库。

如何在 @BeforeUpdate 侦听器函数中访问所述事务管理器?

typescript typeorm

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

标签 统计

react-hooks ×1

reactjs ×1

typeorm ×1

typescript ×1