2

我是 React.js 的新手,并使用react-router-dom. 其中我有两个组件:

  1. 仪表板(dashboard.js)
  2. 信息(信息.js)

和一个主要组件应用程序App.js,我在其中使用react-router-dom.

<Route exact path="/dashboard" render={props => <Dashboard someProp="2" {...props} />} />
<Route exact path="/information" render={props => <Information someProp="2" {...props} />} />

我可以将道具从 App 组件发送到仪表板和信息,但我想发送状态。有人可以帮助我,如何将状态从父组件发送到子组件?

4

2 回答 2

2

父组件中,您可以像这样发送道具

<child prop1 = {this.state.stateName} />
于 2017-05-04T12:36:57.957 回答
2

使用上面的答案,我发布了完整的代码,以便更多的用户可以理解这一点。

应用程序.js 文件

class App extends React.Component {
constructor(props) {
    super(props);
    this.state = {open: false};
    this.state = {message: "StackOverflow"};
  }

return (
        <Router>
          <div>
          <AppBar title="App" onLeftIconButtonTouchTap={this.handleToggle} />

            <Drawer containerStyle={{height: 'calc(100% - 64px)', top: 64}} docked={true} width={200} open={this.state.open} zDepth={2}>
              <Link to="/dashboard" style={{ textDecoration: 'none' }}><MenuItem>Dashboard</MenuItem></Link>
              <Link to="/information" style={{ textDecoration: 'none' }}><MenuItem>Information</MenuItem></Link>
            </Drawer>

            <Route exact path="/dashboard" render={props => <Dashboard someProp={this.state.message} {...props} />} />
            <Route exact path="/information" render={props => <Information someProp={this.state.message} {...props} />} />
          </div>
        </Router>
    );
}

仪表板.js

import React from 'react';


class Dashboard extends React.Component {

  constructor(props) {
    super(props);
  }

  render() {
    console.log(this.props);
    const {styleFromProps} = this.props;
    const contentStyle = {  ...styleFromProps, transition: 'margin-left 450ms cubic-bezier(0.23, 1, 0.32, 1)' };

    return (
            <div style={contentStyle}><h1> Hello {this.props.someProp}</h1></div>
    );
  }
}

export default Dashboard;
于 2017-05-04T13:16:29.873 回答