在React组件中使用私有属性

时间:2016-08-29 05:46:30

标签: reactjs

以下代码有效;我没有收到任何错误,并且Web Storm的IDE也没有发现它。

然而,我一定错过了关于此的文件。

export default class WidgetContainer extends React.Component {
    ....

 compListeners = [
    {name: "collapseWidget", action: this._widgetCollapse.bind(this)},
    {name: "goFullscreen", action: this._goFullScreen.bind(this)}
  ];

  componentDidMount() {
    this.compListeners.map(ev => {
      window.addEventListener(ev.name, ev.action, false)
    });
  }

  componentWillUnmount() {
    this.compListeners.map(ev => {
      window.removeEventListener(ev.name, ev.action, false)
    });
  }

    ....
}

这样做是否可以接受声明 compListeners 的做法?我节省了很多代码。

1 个答案:

答案 0 :(得分:0)

声明一个对象数组的反应是完全可以接受的。你做了什么

compListeners = [
    {name: "collapseWidget", action: this._widgetCollapse.bind(this)},
    {name: "goFullscreen", action: this._goFullScreen.bind(this)}
  ];

是声明和具有名称和操作属性的对象数组。

使用window.addEventListener(),您只是将数组中的参数传递给上面的函数,因此没有问题。