下行时子组件无法获得的值

时间:2018-04-06 12:25:03

标签: javascript reactjs material-ui

我正在尝试将isOpen支持下载到Snackbar组件,但出于某种原因,当我在componentDidMount或componentDidUpdate中调试this.log时,我看到的是this.props.message。如果有人能帮助我,我将非常感激,看到这个问题花了我很多时间,但它似乎很简单。提前谢谢!

父组件

{this.state.message.message ? <SnackBar message={this.state.message.message} isOpen={true}/> : null}

Snackbar组件

class SnackBar extends Component {
constructor (props) {
  super(props)
  this.state = {
   open: false,
  };
}

componentDidUpdate(prevProps,nextProps) {
  console.log(this.props);
  console.log(prevProps, nextProps);

}

1 个答案:

答案 0 :(得分:0)

来自componentDidUpdate的反应文档:

This method is not called for the initial render.

并且componentDidMount不会将道具作为参数,您必须使用this.props

class SnackBar extends Component {
constructor (props) {
  super(props)
  this.state = {
   open: false,
  };
}

componentDidMount() {
  console.log(this.props)
}