gpt4 book ai didi

reactjs - React 中是否仍需要带有自动绑定(bind)和属性初始值设定项的构造函数

转载 作者:行者123 更新时间:2023-12-03 13:20:04 24 4
gpt4 key购买 nike

我正在重构一个基于 es6 类的 React 组件,该组件使用普通的构造函数,然后绑定(bind)方法,并在该构造函数中定义状态/属性。像这样的事情:

class MySpecialComponent extends React.Component {
constructor(props) {
super(props)
this.state = { thing: true }
this.myMethod = this.myMethod.bind(this)
this.myAttribute = { amazing: false }
}

myMethod(e) {
this.setState({ thing: e.target.value })
}
}

我想重构它,以便自动绑定(bind)函数,并使用状态和属性的属性初始值设定项。现在我的代码看起来像这样:

class MySpecialComponent extends React.Component {
state = { thing: true }
myAttribute = { amazing: false }


myMethod = (e) => {
this.setState({ thing: e.target.value })
}
}

我的问题是,我还需要构造函数吗?或者 Prop 也是自动绑定(bind)的吗?我本以为仍然需要构造函数并包含 super(props),但我的代码似乎可以正常工作,但我很困惑。

谢谢

最佳答案

根据我的理解,使用 class properties 时根本不需要键入构造函数。 (如您的第二个代码示例中所示)。接受的答案指出,如果您“需要引用初始状态对象中的 props”,那么您确实需要一个,但如果您使用所述类属性,那么您可能会使用 Babel 来转译它,在这种情况下是一个构造函数使用,只是在幕后完成。因此,即使您在状态中使用 props,您也不需要自己添加构造函数。

参见this aricle以获得更好的示例和更好的解释。

关于reactjs - React 中是否仍需要带有自动绑定(bind)和属性初始值设定项的构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44684481/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com