React Native - 将setState设置为其他组件

时间:2017-10-11 09:44:10

标签: javascript reactjs react-native

我希望在启动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);

1 个答案:

答案 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();次来电。