【问题标题】:React initialize state with or without constructor有或没有构造函数的反应初始化状态
【发布时间】:2020-09-07 04:41:33
【问题描述】:

我对反应还很陌生,我只是想知道为什么我们在构造函数中使用 this.state 并且在初始化状态时只使用没有构造函数的状态。

让我们说:

我已经创建了一个带有构造函数的组件,这里我必须指定 this.state 来初始化状态。

    class Test {

   constructor(){
    super();
    this.state = {
       name : ""
   }

     }

   }

如果我创建一个没有构造函数的组件,我只能使用状态来初始化状态:

 class Test{
   state = {
      name : ""
   }
   }

【问题讨论】:

  • 你能提供一个你具体指的是什么的sn-p吗?
  • 是的,sn-p 会有所帮助
  • 我现在已将 sn-p 添加到原始问题中。

标签: reactjs


【解决方案1】:

您可以像下面这样初始化状态,也可以使用 React Hooks

从“反应”导入反应;

class YourComponent extends React.Component {
  state = {
    title: 'hello world',
  };

  render() {
    const { title } = this.state;
    return <h1>{title}</h1>;
  }
}

export default YourComponent;

使用 Hook,您可以初始化如下状态。

import React, { useState } from 'react';

const YourComponent = () => {
  const [title, setTitle] = useState('hello world');

  return <h1>{title}</h1>;
};

export default YourComponent;

【讨论】:

  • 这不是如何初始化状态,我是问为什么我们在构造函数中使用this.state,而只有状态没有构造函数?
猜你喜欢
  • 2017-08-17
  • 2016-10-13
  • 2021-04-29
  • 1970-01-01
  • 2021-12-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多