javascript - 什么时候在构造函数( Prop )上使用普通状态?

标签 javascript reactjs

我知道他们有一些类似的问题,但我仍然对以下内容感到困惑。

什么时候使用这样的状态

Class Example extends Component {
  state = {
    name: ''
  }

 }

在构造器 Prop 上

Class Example extends Component{ 

  constructor(props) {
    super(props);

    this.state = {
      name: ''
    }
  }
}

和方法绑定(bind)有关系吗?因为我可以很好地使用 onChange 而无需像这样绑定(bind)它:

this.onChange = this.onChange.bind(this) 

我仍然可以像这样调用 onChange

onChange = (e) => {

}

<Component onChange = {this.onChange} />

最佳答案

您示例中的区别纯粹是语法上的,而不是功能上的。您可以同时使用它们以获得相同的效果。

通常,当您想根据某些运行时逻辑(例如,根据传递的 Prop )计算状态时,您会在构造函数中分配一个状态。在那种情况下,你会这样写:

class Example extends Component {
  constructor(props) {
    this.state = {
      fullName: props.firstName + ' ' + props.lastName
    }
  }
}

关于javascript - 什么时候在构造函数( Prop )上使用普通状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55657546/

相关文章:

javascript - 如何设置点击的<a>标签样式?

javascript - Microsoft Azure ROPC Flow 400 错误请求

javascript - 如何在 react 路由器中始终显示默认组件

android - 在现有项目React-Native中添加现有原生项目Android

javascript - JavaScript 回调是否阻塞?

javascript - fileReader 在 IE 中不工作

javascript - MongoDB - 如何仅在存在的字段上使用 $ifNull

reactjs - 是什么导致 apollo 客户端渲染组件出现 "React.Children.only expected to receive a single React element child."错误

javascript - 如何同步React中不同组件的身份验证状态?

reactjs - React-Select:如何在将 HTML 传递给选项中的标签值时保持搜索能力