Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在REACT中何时使用构造函数合适? 我了解OOP语言中的构造函数概念,如C++。但是,我不完全确定在REACT中何时使用构造函数。我确实理解JavaScript是面向对象的,但我不确定构造函数实际上在“构造”什么_Javascript_Reactjs_React Native_Constructor_Es6 Class - Fatal编程技术网

在REACT中何时使用构造函数合适? 我了解OOP语言中的构造函数概念,如C++。但是,我不完全确定在REACT中何时使用构造函数。我确实理解JavaScript是面向对象的,但我不确定构造函数实际上在“构造”什么

在REACT中何时使用构造函数合适? 我了解OOP语言中的构造函数概念,如C++。但是,我不完全确定在REACT中何时使用构造函数。我确实理解JavaScript是面向对象的,但我不确定构造函数实际上在“构造”什么,javascript,reactjs,react-native,constructor,es6-class,Javascript,Reactjs,React Native,Constructor,Es6 Class,呈现子组件时,子组件中是否需要构造函数?例如: class App extends React.Component { constructor(props) { super(props); this.state = { items: [], error: null } } render () { return ( <React.Fragment>

呈现子组件时,子组件中是否需要构造函数?例如:

class App extends React.Component {
   constructor(props) {
      super(props);
      this.state = {
         items: [],
         error: null
      }
    }
    render () {
       return (
          <React.Fragment>
             <ChildComponent data={this.state.items}></ChildComponent>
          </React.Fragment>
       )
    }
}
类应用程序扩展了React.Component{
建造师(道具){
超级(道具);
此.state={
项目:[],
错误:null
}
}
渲染(){
返回(
)
}
}
为了简洁起见,我将保持这个例子的简短。但是,为什么需要构造函数呢?您是否需要在子组件中为道具设置构造函数


我的ES6知识可能不符合要求。

如果不初始化状态,也不绑定方法,则不需要为React组件实现构造函数。

React组件的构造函数在装入之前被调用。在实现React.Component子类的构造函数时,应该在调用任何其他语句之前调用super(props)。否则,this.props将在构造函数中未定义,这可能会导致错误

通常,in-React构造函数仅用于两个目的:

  • 通过将对象分配给此.state初始化本地状态
  • 将事件处理程序方法绑定到实例

链接在您的示例中,当您需要初始化状态或绑定某些事件侦听器函数时,使用构造函数非常有用

  • this.handler=this.bind.handler(this)在构造函数内部

  • 构造函数根本不需要

    状态初始化可以直接在类的主体中完成,函数可以分配给如下所述的属性,

    从技术上讲,这些属性被称为类属性,它可能很快就会出现在本机javascript中,但由于我们几乎所有人都在React项目中使用Babel transpiler,因此我们可以使用该语法

    class Comp.Comp组件{
    /* 
    *一般来说,我们不需要将道具置于状态,但即使我们需要。
    *然后可以在这个.props中访问它,如下所示
    **/
    state={first:1,second:this.props.second}
    处理程序=(令牌)=>{
    this.setState(prevState=>({first:prevState.first+1}));
    }
    render(){
    返回{this.state.first}和{this.state.second}
    }
    }
    
    阅读更多关于类属性和从react类组件中删除构造函数的详细信息。

    但我可以在不需要构造函数的情况下初始化状态,并使用箭头函数,因此不需要绑定。这是否意味着构造函数一点用处都没有?伟大的链接!!!!!!
    class Comp extends React.Component {
    /* 
     * generally we do not need to put the props in state, but even if we need to.
     * then it is accessible in this.props as shown below 
    **/
    state={ first: 1, second: this.props.second } 
    
    handler= (token) => {
     this.setState(prevState => ({first: prevState.first+1}));
    }
    
    render() {
     return <div onClick={this.handler}>{this.state.first} and {this.state.second } </div>
    }
    }