我见过两者交替使用.

两者的主要用例是什么?有优点/缺点吗?一个是更好的做法吗?

推荐答案

这两种方法不能互换.当使用ES6类时,应该在构造函数中初始化状态,当使用React.createClass类时,应该定义getInitialState方法.

See the official React doc on the subject of ES6 classes

class MyComponent extends React.Component {
  constructor(props) {
    super(props);
    this.state = { /* initial state */ };
  }
}

相当于

var MyComponent = React.createClass({
  getInitialState() {
    return { /* initial state */ };
  },
});

Reactjs相关问答推荐

获取this.props.match.params.id未定义

自动化幻灯片放映以防止React中重复过多的正确方法是什么

NextJs Form不允许我输入任何输入,

ReferenceError:未在Redux组件中定义窗口

防止在Reaction中卸载

react ';S使用状态不设置新状态

MUiv5和TSS-Reaction SSR问题:无法可靠地处理样式定义.CSSprops 中的ArrowFunctionExpression

React 错误: 只能用作 元素的子元素,从不直接渲染.请将您的 包裹在

如何清除过滤器搜索的状态

我可以在加载器函数中多次 fetch() 并使用一次 useloaderdata() 提取它吗?

Firebase查询返回随机用户数据,而不是过滤后的用户数据

在 React-Select 中显示多值的倒序

如何在悬停时更改 MUI 卡内容

使用状态与复选框不同步

当我在 useEffect 中使用 useDispatch 时,我的组件继续渲染

使用 Jest/React 测试库时,如何测试由 setInterval 函数创建的 DOM 更改?

map 未显示在react 传单中

当状态改变时如何执行一些动作,但只针对第一次更新?

如何跨微前端 React 应用管理状态管理?

服务器端分页未按预期工作