javascript - 在 React 组件的类之外编写函数

标签 javascript reactjs ecmascript-6 es6-class

我见过这样的代码

function abc(){
  return 'abc'
}
class MyComponent extends React.Component {
    static abc = abc;
    render() { return <h1>{this.abc}</h1>; }
}

其中函数 abc 是在 React 类之外定义的。我不知道作者为什么那样做,为什么不能在类里面做?

最佳答案

这些是 ES6 static methods并且不是 React 独有的。它们是组件类的成员,而不是组件实例的成员。它们在 React 中没有被广泛使用,但它们很有用。它甚至在 React docs 中被提及:

Sometimes it’s useful to define a static method on a React component. For example, Relay containers expose a static method getFragment to facilitate the composition of GraphQL fragments.

它们可以用作组件的公共(public)成员,由组件的所有实例共享。给你个思路,其他static members of a React classdisplayNamedefaultProps

另见 Static methods in React .如您所见,使用静态方法的情况并不多。

关于javascript - 在 React 组件的类之外编写函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47668144/

相关文章:

javascript - React Redux Promise 错误 - (...).then 不是一个函数

reactjs - 页面刷新时 Firebase onAuthStateChange 返回未定义

javascript - 利用 Mongo 的 ES6 默认参数

javascript - AddEventListener 不工作 ES6

javascript - 获取元素的 ID 并将其与字符串或另一个 ID 进行比较

javascript - SVG 中虚线的悬停事件

reactjs - 如果在回调函数中调用 useState,则不会重新渲染组件

Javascript:在 JSON 中查找键及其值

javascript - 使用 vanilla js 按需加载脚本文件

Javascript - 如何销毁对象并克隆属性?