React - 如何在render中访问componentdidmount中指定的变量

时间:2018-04-11 18:58:48

标签: javascript reactjs

我有以下代码从Window中提取对象并希望在渲染时使用它。

我在控制台中将comeponentData的值设置为undefined。我该如何访问该值?

class MobileBanner extends React.PureComponent {

componentDidMount(){
let banner = window.something.banner
this.setState({
  componentData: banner
})
}

render () {
const componentData =
  typeof dhome === 'undefined' || isEmpty(dhome)
    ? 'undefined'
    : this.state.componentData
  }
}

1 个答案:

答案 0 :(得分:1)

您需要在构造函数中设置默认值。

class MobileBanner extends React.PureComponent {
  constructor() {
    super();

    this.state = {
      componentData: ''
    };
  }

componentDidMount(){
  let banner = window.something.banner
  this.setState({
    componentData: banner
  })
}

render () {
  const componentData =
    typeof dhome === 'undefined' || isEmpty(dhome)
      ? 'undefined'
      : this.state.componentData
  }
}

详细了解 costructor https://reactjs.org/docs/react-component.html#constructor