首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >属性'isMounted‘在'ErrorBoundary’类型上不存在

属性'isMounted‘在'ErrorBoundary’类型上不存在
EN

Stack Overflow用户
提问于 2022-05-13 23:40:37
回答 1查看 21关注 0票数 0

我正在练习打字稿,我遇到了一个不允许我继续前进的错误:Property 'isMounted' does not exist on type 'ErrorBoundary'

我有以下边界组件

代码语言:javascript
复制
// React
import React from 'react'

// Librarys
import ReportIcon from '@mui/icons-material/Report';

type ChildrenProp = {
   children: React.ReactNode,
}

type BoundaryState = {
  error: null|string
}

export default class ErrorBoundary extends React.PureComponent<ChildrenProp, BoundaryState> {
  constructor(props:ChildrenProp) {
    super(props)
    this.isMounted = false
    this.state = {
      error: null,
    }
  }

  componentDidMount() {
    this.isMounted = true
  }

  componentDidCatch(error) {
    this.isMounted && this.setState({ error: error.message })
  }

  componentWillUnmount() {
    this.isMounted = false
  }

  render() {
    if (this.state.error) {
      return (
        <div className="d-flex h-100 align-items-center justify-content-center  flex-column text-muted text-center">
          <ReportIcon className="mb-1 fs-4" />
          <h4 className="text-secondary">Application Error:</h4>
          <code className="col-10 mx-auto">{JSON.stringify(this.state.error)}</code>
        </div>
      )
    }

    return this.props.children
  }
}

我需要理解为什么类型记录会抛出此错误,this.isMounted是导致此错误的原因,但是如何分配类型呢?非常感谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-05-13 23:53:47

public isMounted: boolean;添加到组件以声明它( public是可选的)

代码语言:javascript
复制
export default class ErrorBoundary extends React.PureComponent<ChildrenProp, BoundaryState> {
  
  public isMounted: boolean;

  constructor(props:ChildrenProp) {
    ...
  }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72236299

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档