gpt4 book ai didi

javascript - 如何访问另一个组件的状态

转载 作者:行者123 更新时间:2023-12-03 02:28:11 26 4
gpt4 key购买 nike

我有带有 header 组件的主组件,我如何访问主组件中的 header 状态,这里是示例

Header.JS

class Header extends React.Component {
constructor(props){
super(props);
this.state = {
pageNumber: 1
}
}
render() {
return (
<div className="shopping-list">
<ul>
<li>Instagram</li>
<li>WhatsApp</li>
<li>Oculus</li>
</ul>
</div>
);
}
}

Home.js

import React, {Component} from 'react';
import Header from './header';

class App extends Component {

render() {
return (
<div>
<Header /> // I need to use the states of Header in this component
</div>
)
}
}

export default App;

我需要在 Home 组件中使用 Header 的状态,可以吗?

这种方式对性能有好处吗?谢谢

最佳答案

您需要使用state lifting .

定义一个方法,例如Header 组件中的 liftTheState 将通过使用所需数据调用 Home 组件方法来提升 Header 组件的状态。

class Header extends React.Component {
constructor(props){
super(props);
this.state = {
pageNumber: 1
}
}

liftTheState=()=>{

this.props.callHomeMethod(this.state.pageNumber);
}
render() {
//...
}
}

在家里:

定义一个方法,例如Home 组件中的 callHomeMethod 将保存 Header 组件数据并将方法作为 prop 传递给 Header 组件

class App extends Component {

callHomeMethod = (someDataFromHeader)=>{


}
render() {
return (
<div>
<Header callHomeMethod = {this.callHomeMethod}/> // pass Home method here used for state lifting.
</div>
)
}
}

关于javascript - 如何访问另一个组件的状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48849813/

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