我希望在启动Header
时更改Home
中的某些布局。所以我决定在setState
Home
时拨打componentWillMount
。如何将setState设置为不同js文件中的其他组件。
Header.js
class Header extends React.Component {
constructor(props) {
super(props);
this.state = { type: '' };
}
render() {
if(this.state.type == "home"){
//do something
}else{
//do something
}
}
}
module.exports = Header;
AppRegistry.registerComponent('myApp', () => Header);
Home.js
class Home extends React.Component {
//set from here
componentWillMount(){
this.setState({Header.state.type:'home'});
}
}
module.exports = Home;
AppRegistry.registerComponent('myApp', () => Home);
答案 0 :(得分:0)
您需要一个公共父组件,并且只需要通过AppRegistry.registerComponent()
安装一个初始组件。像这样:
Parent.js
class Parent extends React.Component {
constructor(props) {
super(props);
this.state = { type: '' };
}
render() {
<Header></Header>
<Home></Home>
}
}
module.exports = Parent;
AppRegistry.registerComponent('myApp', () => Parent);
需要删除其他组件中的AppRegistry.registerComponent();
次来电。