我见过像这样的代码
function abc(){
return 'abc'
}
class MyComponent extends React.Component {
static abc = abc;
render() { return <h1>{this.abc}</h1>; }
}
其中函数abc
在react类之外定义。我不知道为什么作者这样做,为什么不能在课堂上做到这一点?
答案 0 :(得分:4)
这些是ES6 static methods,并不是React独有的。它们是组件类的成员,而不是组件的实例。它们并没有在React中广泛使用,但它们可能很有用。它甚至在React docs中提到:
有时在React组件上定义静态方法很有用。 例如,Relay容器将静态方法getFragment公开给 促进GraphQL片段的组成。
它们可以用作Component的公共成员,由它的所有实例共享。为了给您一个想法,其他static members of a React class为displayName
和defaultProps
。
另见Static methods in React。如您所见,使用静态方法的情况并不多。
答案 1 :(得分:0)
一方面,在类外声明函数更容易导出。在测试您的React应用程序时(即通过开玩笑),这很有用。
答案 2 :(得分:-1)
import React, { Component } from 'react';
class Contacts extends Component {
render() {
return (
Contact()
);
}
}
const Contact = () => {
return (
<div>
<p>Contactssssss</p>
</div>
);
};
export default Contacts;