在React Component上设置静态数据/状态

时间:2017-09-08 16:07:05

标签: javascript reactjs

我希望在if ($_FILES['file']){ echo 'yes'; } else { echo 'no'; } 生命周期方法中设置对new ResizeObserver和DOM元素的引用。我需要在componentDidMount中访问这些引用,所以目前我在React组件本身上设置它们(通过componentWillUnmount)。

然而,这对Typescript来说是有问题的,因为Typescript无法识别我的React组件上的属性thisro。此外,我甚至不确定这是否是最好的方法。这是一个很好的约定还是有更好的方法来设置静态数据?

el

1 个答案:

答案 0 :(得分:1)

您可以通过在组件的类中声明roel作为可选属性来输入此类型。只需添加

private ro? : ResizeObserver
private el? : Element

它们是可选的,因为它们没有在构造函数中设置,因此您必须在每个使用它们的地方添加(多余的)存在检查。 E.g:

if (this.ro && this.el) {
  this.ro.unobserve(this.el);
}

两者都将始终存在于componentWillUnmount中,因为它们已在componentDidMount中初始化,但这不是您可以在TypeScript中表达的内容。