【发布时间】:2020-10-26 08:21:25
【问题描述】:
class Parent extends React.Component {
handler = (event) => {
this.setState(state => ({ count: state.count + 1 }));
}
render() {
return (
<div>
{this.state.count}
<Child Parent={this} />
</div>
);
}
}
function Child(props) {
return <button onClick={props.Parent.handler}>increment count</button>
}
我用过这种模式几次,没有发现任何后果,有人认为遵循这种模式有什么危害吗?
【问题讨论】:
-
不,这是错误的模式。您只需要发送您想在子组件中使用的属性。
-
你怎么看,这会是错误的模式吗?
-
每次父组件发生更改时,您的子组件都会重新渲染。在您的情况下,拥有子组件根本没有意义(好处)!
-
这总是正确的,除非我们记忆孩子,孩子将在每次渲染父母时重新渲染
-
关于您只发送必需属性的观点,有时要发送的属性太多,让人思考,如果我可以直接发送类实例怎么办,这就是问题的目的跨度>
标签: javascript reactjs pass-by-reference setstate