首页 文章

在React / React Native中使用构造函数与state = {}有什么区别? [重复]

提问于
浏览
4

这个问题在这里已有答案:

我见过两者

export default class LoginScreen extends React.Component {
  constructor(props){
    super(props);
    this.state = {
      loading: false,
      loggedIn: false,
    }
  }
}

export default class LoginScreen extends React.Component {
  state = {
    loading: false,
    loggedIn: false,
  }
}

两者的用例有哪些?有优点/缺点吗?这是一个更好的做法吗?

2 回答

  • 0

    Use constructor when you want to save props data into state

    export default class LoginScreen extends React.Component {
      constructor(props){
        super(props);
        this.state = {
          loading: props.loading,
          loggedIn: props.loggedIn,
        }
      }
    }
    

    Otherwise you can directly set the state for hard coded data

    export default class LoginScreen extends React.Component {
      state = {
        loading: false,
        loggedIn: false,
      }
    }
    
  • 7

    两种情况下的表现相同,所以这只是个人偏好的问题 . 在类之外定义状态恰好比在构造函数中定义它更新的实现,所以我建议你使用显式状态定义 .

相关问题