小编典典

使用React.createRef创建引用而不在React中使用构造函数?

reactjs

基本上,我只用constructorReact3个原因-

1.如要初始化state-

class App extends React.Component {
    constructor(props) {
        super(props);
        this.state = { counter: 0 };
    }
}

但是由于Babel的班级领域支持,我不再使用它

class App extends React.Component {
    state = { counter: 0 };
}

2. bind像-

class App extends React.Component {
    constructor(props) {
        super(props);
        this.increment.bind(this);
    }

    increment() {

    }
}

但是由于arrow功能原因,我不再这样做了

class App extends React.Component {
    increment = () => {

    }
}

3.如要使用createRef-

class App extends React.Component {
    constructor(props) {
        super(props);
        this.inputRef = React.createRef();
    }
}

那我可以React.createRef不用constructor在React中使用吗?


阅读 318

收藏
2020-07-22

共1个答案

小编典典

您可以像一样将其声明为类字段state

class App extends React.Component {
  state = { counter: 0 };
  inputRef = React.createRef();
}

Babel会将其转换为第二阶段预设中的以下代码。

constructor(props) {
    super(props);

    this.state = { counter: 0 };
    this.inputRef = React.createRef();
  }
2020-07-22