我在React中遇到一个奇怪的问题。我想我可能还没有完全了解React的工作原理,并且非常感谢您的帮助。
请在我的React组件下面找到:
class myComponent extends Component {
state = {
value: ''
}
updateValue = e => {
this.setState({
value: e.target.value
})
}
render() {
return (
<form>
<input type="text" onChange={this.updateValue} defaultValue={this.state.value} />
</form>
)
}
}
Run Code Online (Sandbox Code Playgroud)
然后,现在,如果我在文本字段中键入内容,则会收到以下警告和错误:
警告:出于性能原因,此合成事件已被重用。如果看到此消息,说明您正在通过已target发布/无效的综合事件访问该属性。设置为空。如果必须保留原始的合成事件,请使用event.persist()。
未捕获的TypeError:无法读取null的属性“值”
但是,如果我将'updateValue'方法更改为:
updateValue = e => {
const newValue = e.target.value
this.setState({
value: newValue
})
}
Run Code Online (Sandbox Code Playgroud)
它将正常工作。
在 docker-compose.yml 文件中,我有 3 个服务。第一个服务用于启动 MySQL 数据库。第二个服务用于运行多个数据库迁移,以在第一个服务中创建的 MySQL 数据库中创建表和种子数据。第三个服务用于运行一些需要 MySQL 数据库的 Node.js 单元测试。问题是我需要在数据库迁移完成后才开始单元测试。但我无法知道这一点。
我尝试使用单元测试服务中的depends_on配置选项来使其依赖于数据库迁移服务,但根据Docker文档,depends_on仅保证单元测试服务在数据库迁移服务启动后启动。
我只是想知道在 Next.js 中我可以在哪里放置 Router.events 相关代码?显然,我不能把它放在一个特定的组件中,因为它需要在整个应用程序中使用。
谢谢你。
我的应用程序中有 2 个模型,它们具有一对多和多对一的关系。
模型类是:
发票模型
@Entity
@Data
public class Invoice implements java.io.Serializable {
@Id
@GeneratedValue(generator = "system-uuid")
@GenericGenerator(name = "system-uuid", strategy = "uuid2")
private String id;
private String business;
private String client;
private String invoiceNo;
@Enumerated(EnumType.STRING)
private InvoiceStatus status;
private String additionalInfo;
@OneToMany(mappedBy = "invoice")
private Set<InvoiceItem> items = new HashSet<>();
@CreationTimestamp
private LocalDateTime createdAt;
@UpdateTimestamp
private LocalDateTime updatedAt;
private LocalDateTime deletedAt;
}
Run Code Online (Sandbox Code Playgroud)
发票项目模型
@Entity
@Data
public class InvoiceItem {
@Id
@GeneratedValue(generator = "system-uuid")
@GenericGenerator(name = "system-uuid", strategy = "uuid2") …Run Code Online (Sandbox Code Playgroud) docker ×1
hibernate ×1
java ×1
javascript ×1
next.js ×1
reactjs ×1
spring-boot ×1
spring-mvc ×1
unit-testing ×1