使用箭头函数反应ES6组件

时间:2017-08-18 22:37:34

标签: javascript reactjs es6-class

非常新的反应, 我有一个类:

export const Checkbox = ({ label, className }) => {
  ....
  .... 
  return(
    .............
    .............

  );             
}

在这样的类中,如何指定添加componentDidMount和componentWillReceiveProps?

修改

我有一个外行人的疑问,这是为复选框创建包装器反应组件的正确方法吗?功能组件或从组件扩展?如果我为其他人创建一个Checkbox包装器组件,他们是否可以从他们的页面连接到商店(比如redux)?

谢谢, Santhosh

3 个答案:

答案 0 :(得分:2)

你不能。

这些是功能组件,不支持React的生命周期方法。

如果您想使用React的生命周期方法,则需要一个继承自LayoutDocuments

的类

见下面的例子。

React.Component

Here is a good answer解释差异以及何时使用功能性类组件。

从React 16.8更新

现在可以在引入hooks时使用生命周期方法。

如果您希望实现class Example extends React.Component { componentDidMount(){ //code here } } ,您将使用componentDidMount挂钩并传递一个空数组作为第二个参数。示例如下所示。

useEffect

答案 1 :(得分:2)

你做不到。

如果要使用React的生命周期方法,则需要一个继承自React.Component的类。

export class Checkbox extends React.Component {
    componentDidMount() {
        ....
    }

    render() {
        const { label, className } = this.props;
        ....
    }
}

答案 2 :(得分:1)

你做不到。如果需要生命周期方法,则应创建一个扩展PureComponent或Component的类。