React - 如何在不使用构造函数的情况下访问道具

时间:2017-10-19 18:03:41

标签: javascript reactjs react-native eslint

注意:我使用React Native遇到了这个特定问题,但我想这也适用于React。

我有一个使用React.Component构建的react组件。 我不需要设置状态,但我确实有道具。我提出的语法如下:

class Header extends Component {
  constructor(props) {
    super(props);
  }
  render() {
    return <div>{this.props.title}</div>;
  }
}

我知道我可以使用一个函数来构造这个组件,如下所示:

const Header = (props) => {
  return <div>{props.title}</div>;
}

但我更喜欢前者,因为我的组件会增长,可能有状态等,我只想保持所有组件以类似的方式构建。

现在,我的linter抱怨有一个无用的构造函数,但是如何在保留类构造函数而不是函数构造函数的情况下访问道具?

2 个答案:

答案 0 :(得分:12)

  

如果要在构造函数中使用this.props,则需要将props传递给super。否则,它无关紧要,因为在调用构造函数后,React会立即从外部设置.props。

所以只需删除构造函数(),如果无用

答案 1 :(得分:3)

你可以使用&#34;这个&#34;来访问类中没有构造函数的道具,如下所示:

class XXXXXX extends React.Component {
   render() {
       return (
          <div>{this.props.value}</div>
       )
   }
}