使用箭头函数响应 ES6 组件
React ES6 components using arrow functions
很新的反应,
我有一个 class 像:
export const Checkbox = ({ label, className }) => {
....
....
return(
.............
.............
);
}
在这样的class中如何指定添加componentDidMount和componentWillReceiveProps?
编辑:
我有一个外行的疑问,为复选框创建包装器反应组件的正确方法是什么?功能组件还是从组件扩展?如果我创建一个 Checkbox 包装器组件供其他人使用,他们是否可以从他们的页面连接到商店(比如 redux)?
谢谢,
桑托斯
你不能。如果您需要生命周期方法,您应该创建一个扩展 PureComponent 或 Component 的 class。
你不能。
这些是功能组件,不支持 React 的生命周期方法。
如果你想使用 React 的生命周期方法,你需要一个 class 继承自 React.Component
参见下面的示例。
class Example extends React.Component {
componentDidMount(){
//code here
}
}
解释差异以及何时在 class 组件上使用功能。
从 React 16.8 更新
生命周期方法现在可以通过引入 hooks 来使用。
如果您希望实现 componentDidMount
,您可以使用 useEffect
钩子并传递一个空数组作为第二个参数。示例如下所示。
const Example = () => {
React.useEffect(() => {
// do stuff here
}, []);
}
你不能。
如果你想使用 React 的生命周期方法,你需要一个继承自 React.Component 的 class。
export class Checkbox extends React.Component {
componentDidMount() {
....
}
render() {
const { label, className } = this.props;
....
}
}
很新的反应, 我有一个 class 像:
export const Checkbox = ({ label, className }) => {
....
....
return(
.............
.............
);
}
在这样的class中如何指定添加componentDidMount和componentWillReceiveProps?
编辑:
我有一个外行的疑问,为复选框创建包装器反应组件的正确方法是什么?功能组件还是从组件扩展?如果我创建一个 Checkbox 包装器组件供其他人使用,他们是否可以从他们的页面连接到商店(比如 redux)?
谢谢, 桑托斯
你不能。如果您需要生命周期方法,您应该创建一个扩展 PureComponent 或 Component 的 class。
你不能。
这些是功能组件,不支持 React 的生命周期方法。
如果你想使用 React 的生命周期方法,你需要一个 class 继承自 React.Component
参见下面的示例。
class Example extends React.Component {
componentDidMount(){
//code here
}
}
从 React 16.8 更新
生命周期方法现在可以通过引入 hooks 来使用。
如果您希望实现 componentDidMount
,您可以使用 useEffect
钩子并传递一个空数组作为第二个参数。示例如下所示。
const Example = () => {
React.useEffect(() => {
// do stuff here
}, []);
}
你不能。
如果你想使用 React 的生命周期方法,你需要一个继承自 React.Component 的 class。
export class Checkbox extends React.Component {
componentDidMount() {
....
}
render() {
const { label, className } = this.props;
....
}
}