我在为将以下代码更改为等效的ES6语法而苦苦挣扎。

export default class EventSessionItem extends Component {
    state = {
        isDetailsVisible: false,
    };

    revealDetails = () => {
        this.setState({isDetailsVisible: true});
    };


我以为下面是转换,但显然不是。语法错误,所有指示灯都亮红色。

export default class EventSessionItem extends Component {

  constructor() {
    isDetailsVisible = false;
  }

  function revealDetails  {
    this.setState({isDetailsVisible: true});
  };

最佳答案

您的带有类初始化器的代码可以使构造函数中的属性赋值:

export default class EventSessionItem extends Component {
  constructor(...args) {
//^^^^^^^^^^^
    super(...args);

    this.state = {
//  ^^^^^
        isDetailsVisible: false,
    };

    this.revealDetails = () => {
//  ^^^^^
        this.setState({isDetailsVisible: true});
    };
  }
}

关于javascript - 用JavaScript转换回ES6类,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49141639/

10-09 07:22