gpt4 book ai didi

javascript - ReactJS:无状态组件中的有状态子组件

转载 作者:行者123 更新时间:2023-11-30 11:26:21 26 4
gpt4 key购买 nike

在无状态组件中拥有有状态子组件是否会使组件不再无状态?

最佳答案

简答

不,不是。


与具有状态的组件关联的生命周期方法应该独立于它们在组件层次结构中的位置工作,否则事情会以不可预知的方式中断。

这里证明了无状态组件有一个类的后备实例,因此它们可以使用 ref 和生命周期方法:

class StatefulComponent extends React.Component {
componentDidMount() {
this.wrapper.classList.add("highlight");
}

render() {
return (
<div ref={ref => this.wrapper = ref}>
Stateful (red outline due to class being added)
{this.props.children}
</div>
);
}
}

const StatelessComponent = props => (
<div>
Stateless (black outline)
{props.children}
</div>
);

ReactDOM.render(
<StatefulComponent>
<StatelessComponent>
<StatefulComponent />
</StatelessComponent>
</StatefulComponent>, document.getElementById("app"));
div {
padding: 20px;
outline: 1px solid;
}

.highlight {
outline-color: red;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react-dom.min.js"></script>
<div id="app"></div>

关于javascript - ReactJS:无状态组件中的有状态子组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47911965/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com