Можем ли мы использовать компоненты класса как дочерние для функциональных компонентов в React? - PullRequest
0 голосов
/ 02 апреля 2019

Можем ли мы иметь дочерние компоненты с состоянием для функционального компонента без состояния?

Ответы [ 2 ]

1 голос
/ 02 апреля 2019

Конечно, нет проблем, вам просто нужно знать, что он переопределяет дочерние элементы, если вы не переопределили shouldComponentUpdate или используете React.memo

shouldComponentUpdate(nextProps) {
    return (this.props.val !== nextProps.val);
}

Для дальнейшего чтения: https://reactjs.org/docs/react-component.html#shouldcomponentupdate https://reactjs.org/docs/hooks-faq.html#how-do-i-implement-shouldcomponentupdate

1 голос
/ 02 апреля 2019

Краткий ответ: да.

class B extends React.Component {
  render() {
    return <div>Class Component</div>
  }
}

const A = () => <div className="a">Stateless Functional Component <B /></div>

ReactDOM.render(<A />, document.getElementById('app'));
.a {background: red; padding: 5px;}

.a div {background: green;}
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.6.3/umd/react.production.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.6.3/umd/react-dom.production.min.js"></script>
<div id="app"></div>
...