使用箭头函数反应ES6组件

问题描述 投票:2回答:3

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

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

  );             
}

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

编辑:

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

谢谢,Santhosh

javascript reactjs es6-class
3个回答
2
投票

你不能。

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

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

见下面的例子。

class Example extends React.Component {

   componentDidMount(){
     //code here
   }

}

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

UPDATE from React 16.8

生命周期方法现在可以与hooks的引入一起使用。

如果您希望实现componentDidMount,您将使用useEffect钩子并传递一个空数组作为第二个参数。一个例子如下所示。

const Example = () => {
  React.useEffect(() => {
    // do stuff here
  }, []);
}

2
投票

你不能。

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

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

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

1
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.